スポンサーリンク

[Pandas]列名を変更する

pandasの列名を変更する方法を解説します。

列名を変更する

データセット

import pandas as pd
from sklearn.datasets import load_iris
data = load_iris()
df = pd.DataFrame(
    data = data.data,
    columns = data.feature_names,
)
df["target"] = data.target
df

load_irisのデータを使います。

rename

print(df.columns.tolist())
df = df.rename(columns = {"sepal length (cm)": "s_length"})
print(df.columns.tolist())

# ===== output =====
# ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)', 'target']
# ['s_length', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)', 'target']

renameのcolumnsに{変更前: 変更後}という辞書型で指定します。
上記は”sepal length (cm)”を”s_length”に変えました。

複数の列名を変えたいなら、
{“sepal length (cm)”: “s_length”, “sepal width (cm)”: “s_width”}
の様にきましょう。

print(df.columns.tolist())
df.rename(columns = {"sepal width (cm)": "s_width"}, inplace = True)
print(df.columns.tolist())

# ===== output =====
# ['s_length', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)', 'target']
# ['s_length', 's_width', 'petal length (cm)', 'petal width (cm)', 'target']

このように”inplace = True”を使うと、”df = …”という書き方をしなくて良くなります。

列名をすべて変更する

print(df.columns.tolist())
df.columns = ["s_length", "s_width", "p_length", "p_width", "target"]
print(df.columns.tolist())

# ===== output =====
# ['s_length', 's_width', 'petal length (cm)', 'petal width (cm)', 'target']
# ['s_length', 's_width', 'p_length', 'p_width', 'target']

columns = list型で一気にすべての列名を変更できます。

まとめ

今回はpandasの列名を変更する方法を解説しました。
数個だけ変えたいならrenameで、全て変えたいならcolumnsで変更するのがおすすめです。

コメント

タイトルとURLをコピーしました