Pandas DataFrameの列ラベルを変更したい
['$a', '$b', '$c', '$d', '$e']
に
['a', 'b', 'c', 'd', 'e']
ベストアンサー1
特定の列の名前を変更する
使用df.rename()
関数を使用して、名前を変更する列を参照します。すべての列の名前を変更する必要はありません。
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy)
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
最小限のコード例
df = pd.DataFrame('x', index=range(3), columns=list('abcde'))
df
a b c d e
0 x x x x x
1 x x x x x
2 x x x x x
以下の方法はすべて機能し、同じ出力を生成します。
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis=1)
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis='columns')
df2 = df.rename(columns={'a': 'X', 'b': 'Y'})
df2
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
変更はインプレースではないため、結果を必ず割り当ててください。 または、次のように指定しますinplace=True
。
df.rename({'a': 'X', 'b': 'Y'}, axis=1, inplace=True)
df
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
errors='raise'
名前を変更する列が無効であると指定された場合にエラーを発生させるように指定できます。
列ヘッダーの再割り当て
使用df.set_axis()
とaxis=1
。
df2 = df.set_axis(['V', 'W', 'X', 'Y', 'Z'], axis=1)
df2
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x
ヘッダーは直接割り当てることができます:
df.columns = ['V', 'W', 'X', 'Y', 'Z']
df
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x