Pandasで列名を変更する 質問する

Pandasで列名を変更する 質問する

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

おすすめ記事