Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・Pandas】DataFrameの複数の列名を辞書で一括変更する方法

Pandasのrename()メソッドで複数の列ヘッダーを一括リネームする

PandasのDataFrameで複数の列ヘッダー(列名)を一度に変更したい場合は、rename()メソッドを使用し、columnsパラメータに辞書を指定します。辞書は「キー=現在の列名」「値=新しい列名」というペアで構成します。この方法なら、個別に代入するよりも簡潔で可読性の高いコードになります。

手順1:サンプルDataFrameを作成する

まず、動作確認用のサンプルDataFrameを作成しましょう。

import pandas as pd

# サンプルDataFrameの作成
dataFrame = pd.DataFrame({
   "Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
   "Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
   "Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
   "Units Sold": [200, 120, 150, 120, 210, 250, 220]
})

手順2:列名変更用の辞書を作成する

次に、旧列名と新列名を対応させた辞書を定義します。すべての列を変更する必要はなく、変更したい列だけを辞書に含めればOKです。

# キー=旧列名、値=新列名 の辞書
dictionary = {
   'Car': 'Car Name',
   'Cubic Capacity': 'CC',
   'Reg Price': 'Registration Price',
   'Units Sold': 'Units Purchased'
}

手順3:rename()メソッドで列名を変更する

rename()メソッドのcolumnsパラメータに辞書を渡します。inplace=Trueを指定すると、元のDataFrameが直接更新されます。

dataFrame.rename(columns=dictionary, inplace=True)

完全なコード例

以下に、ここまでの手順をまとめた実行可能なコード全体を示します。

import pandas as pd

# サンプルDataFrameの作成
dataFrame = pd.DataFrame({
   "Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
   "Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
   "Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
   "Units Sold": [200, 120, 150, 120, 210, 250, 220]
})

print("元のDataFrame:\n", dataFrame)

# 列名変更用の辞書(キー=旧列名、値=新列名)
dictionary = {
   'Car': 'Car Name',
   'Cubic Capacity': 'CC',
   'Reg Price': 'Registration Price',
   'Units Sold': 'Units Purchased'
}

# rename()メソッドで辞書をcolumnsパラメータに設定して一括変更
dataFrame.rename(columns=dictionary, inplace=True)

print("\n列名変更後のDataFrame:\n", dataFrame)

実行結果(出力)

上記のコードを実行すると、次のような出力が得られます。すべての列ヘッダーが新しい名前に置き換わっていることが確認できます。

元のDataFrame:
        Car  Cubic Capacity  Reg Price  Units Sold
0      BMW            2000       7000         200
1  Mustang            1800       1500         120
2    Tesla            1500       5000         150
3  Mustang            2500       8000         120
4 Mercedes            2200       9000         210
5    Tesla            3000       6000         250
6     Audi            2000       1500         220

列名変更後のDataFrame:
   Car Name    CC  Registration Price  Units Purchased
0      BMW  2000                7000              200
1  Mustang  1800                1500              120
2    Tesla  1500                5000              150
3  Mustang  2500                8000              120
4 Mercedes  2200                9000              210
5    Tesla  3000                6000              250
6     Audi  2000                1500              220

覚えておくと便利なポイント

  • inplace=True:元のDataFrame自体を直接書き換えます。省略した場合(デフォルト)は変更後の新しいDataFrameが返されるため、df = df.rename(columns=dictionary)のように受け取る必要があります。
  • 一部だけ変更可能:辞書に含めた列のみが変更され、他の列名はそのまま維持されます。
  • errors='raise':存在しない列名をキーに指定してもデフォルトでは無視されますが、dataFrame.rename(columns=dictionary, errors='raise')とすれば、誤った列名を検知してエラーにできます。
  1. Python Pandasでデータフレームの列の値をX軸ラベルとして設定する方法

    PythonのPandasでデータフレームの列の値をX軸ラベルとして設定するには、plot()メソッドの引数にxticksを指定します。これにより、データの値をそのまま目盛りラベルとして表示できるため、グラフがより読みやすくなります。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。Pandasを使って、column1というキーを持つデータフレームを作成します。plot()メソッドでデータフレームをプロットし、column1の値をX軸ラベルとして指定します。図を表示するには、show()メソッドを使用します。コード例import pandas as pd fro

  2. Pythonでデータフレームの列を削除する方法をわかりやすく解説

    データフレームとはデータフレーム(DataFrame)とは、行と列という表形式でデータを格納する二次元データ構造です。SQLのデータテーブルやExcelのシートと同じようなイメージで捉えることができます。データフレームから特定の列を削除するには、いくつかの方法があります。本記事では、削除したい列名を引数として受け取り、その列を削除する「del」演算子の使い方を紹介します。サンプルコードimport pandas as pd my_data = {ab : pd.Series([1, 8, 7], index=[a, b, c]), cd : pd.Series([1, 2, 0, 9], in