はじめに
Pythonのデータ分析ライブラリPandasを使用する際に、データフレームのカラム名を一括で変更する必要があることがあります。この記事では、Pandasでカラム名を一括変更する方法を解説します。
カラム名一括変更の必要性
データフレームを扱う際、カラム名が正しく設定されていることが重要です。しかし、元のデータによってはカラム名がわかりづらかったり、複数のデータを結合した際に重複するカラム名があったりすることがあります。そのため、データフレームのカラム名を一括で変更する必要が生じます。
rename関数を用いた一括変更方法
データフレームのカラム名を一括で変更するためには、rename関数を使用します。rename関数を使用することで、カラム名を一括で変更することができます。
import pandas as pd
# サンプルデータの作成
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# カラム名の一括変更
df = df.rename(columns={'A': 'X', 'B': 'Y'})
print(df)
# 上記のコードを実行すると、以下のような出力結果が得られます。
X Y 0 1 4 1 2 5 2 3 6
辞書を使ったカラム名の変更方法
rename関数を使用する方法以外にも、辞書を使ってカラム名を一括で変更することができます。具体的には、columns属性に対して辞書を代入することで実現します。
import pandas as pd
# サンプルデータの作成
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 辞書を使ったカラム名の一括変更
df.columns = {'X': 'A', 'Y': 'B'}
print(df)
# 上記のコードを実行すると、以下のような出力結果が得られます。
X Y 0 1 4 1 2 5 2 3 6
ループを使ったカラム名の変更方法
ループを使ってカラム名を一括で変更することもできます。具体的には、for文を使って各カラム名を変更する方法です。
import pandas as pd
# サンプルデータの作成
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# ループを使ったカラム名の一括変更
new_columns = []
for column in df.columns:
new_columns.append(column.lower())
df.columns = new_columns
print(df)
上記のコードを実行すると、以下のような出力結果が得られます。
a b 0 1 4 1 2 5 2 3 6
カラム名の一部を置換する方法
カラム名の一部を置換する場合は、str.replace関数を使用します。具体的には、columns属性に対してstr.replace関数を適用することで実現します。
import pandas as pd
# サンプルデータの作成
df = pd.DataFrame({'A1': [1, 2, 3], 'B1': [4, 5, 6], 'A2': [7, 8, 9], 'B2': [10, 11, 12]})
# カラム名の一部を置換する
df.columns = df.columns.str.replace('1', 'One')
df.columns = df.columns.str.replace('2', 'Two')
print(df)
# 上記のコードを実行すると、以下のような出力結果が得られます。
AOne BOne ATwo BTwo 0 1 4 7 10 1 2 5 8 11 2 3 6 9 12
まとめ
この記事では、Pandasでカラム名を一括変更する方法をいくつか紹介しました。rename関数を使う方法、辞書を使ってカラム名を変更する方法、ループを使ってカラム名を変更する方法、カラム名の一部を置換する方法を解説しました。適切な方法を選択して、効率的にカラム名を一括で変更することができるようになりました。
![[python]CSVをPandasに出力(1列目、列指定、桁数)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-288.jpg)
![初めてのPandas:データ分析の入門ガイド[Python]](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-33.jpg)
![Pandasで特定の文字列を含むデータを抽出、置換する[Python]](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-35.jpg)


