Pythonでは、データ分析ライブラリとして広く使用されているpandas
を用いてデータフレーム(DataFrame)を操作します。
データを扱う中で、カラム名(列名)を変更する必要がある場面がよくあります。
カラム名を変更する理由として、以下のようなものが挙げられます。
- データの可読性を向上させるため
- プログラムの可用性を高めるため(統一的なカラム名に変更するなど)
- カラム名にエラーの原因となる特殊文字や空白が含まれている場合
- 外部システムやチームの命名規則に合わせる必要がある場合
カラム名の変更方法
renameメソッド
rename
メソッドは、特定のカラム名を部分的に変更したい場合に便利です。
基本構文
df.rename(columns={"旧カラム名": "新カラム名"}, inplace=True)
例
import pandas as pd
# サンプルデータ
data = {
"名前": ["田中", "佐藤", "鈴木"],
"年齢": [25, 30, 35],
"職業": ["エンジニア", "デザイナー", "マネージャー"]
}
df = pd.DataFrame(data)
# カラム名を変更
df.rename(columns={"名前": "Name", "年齢": "Age"}, inplace=True)
print(df)
出力
Name Age 職業
0 田中 25 エンジニア
1 佐藤 30 デザイナー
2 鈴木 35 マネージャー
カラム名全体を一括変更
カラム名を一括して変更するには、columns
属性に新しいリストを代入します。
基本構文
df.columns = ["新しいカラム名1", "新しいカラム名2", ...]
例
# カラム名を一括変更
df.columns = ["Name", "Age", "Job"]
print(df)
出力
Name Age Job
0 田中 25 エンジニア
1 佐藤 30 デザイナー
2 鈴木 35 マネージャー
特定の文字列を置換して変更
全てのカラム名に対して特定の文字列を置換する場合は、str.replace
を活用します。
例
# カラム名の文字列置換
df.columns = df.columns.str.replace("職業", "Job")
print(df)
出力
名前 年齢 Job
0 田中 25 エンジニア
1 佐藤 30 デザイナー
2 鈴木 35 マネージャー
関数を使ったカラム名変更
columns
に適用する関数を用いて、カラム名を動的に変更することも可能です。
例
# カラム名を全て小文字にする
df.columns = df.columns.str.lower()
# カラム名を全て英大文字にする
df.columns = df.columns.str.upper()
print(df)
注意点
- カラム名の重複
重複する名前を付けるとエラーや意図しない動作の原因になります。 inplace=True
オリジナルのデータフレームを変更するため、慎重に使用してください。- 無効な名前
Pythonの変数名に適さない記号やスペースがある場合、処理に失敗することがあります。
まとめ
カラム名を変更する方法は多岐にわたり、柔軟に対応できます。手法を使い分けることで、データフレームの操作がよりスムーズになるはずです。