「pandasで列名・行名をリネームする方法」:わかりやすいデータフレームを作成しよう

データ分析や機械学習でよく用いられるpandasライブラリ。データフレームを操作する上で、列名・行名を変更することはよくある作業です。この記事では、pandasを使って列名・行名をリネームする方法を解説します。

はじめに

pandasでは、データフレームの列名・行名をそれぞれrename()関数を使って変更することができます。ここでは、サンプルとして以下のようなデータフレームを用いて説明します。

import pandas as pd
df = pd.DataFrame({
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35],
    "city": ["Tokyo", "Osaka", "Nagoya"]
})
print(df)
       name  age    city
0     Alice   25   Tokyo
1       Bob   30   Osaka
2   Charlie   35  Nagoya

このコードを実行すると、以下のようなデータフレームが表示されます。

列名のリネーム:rename()関数を使った列名変更方法

まずは、列名をリネームする方法を紹介します。rename()関数を用いることで、データフレームの列名を変更することができます。

# 列名を変更する
df_renamed = df.rename(columns={"name": "Name", "age": "Age", "city": "City"})
print(df_renamed)
       Name  Age    City
0     Alice   25   Tokyo
1       Bob   30   Osaka
2   Charlie   35  Nagoya

このコードを実行すると、以下のようなデータフレームが表示されます。rename()関数では、columns引数に辞書型のデータを渡すことで、キーとバリューの組み合わせで列名を変更することができます。ここでは、「name」を「Name」、「age」を「Age」、「city」を「City」に変更しています。

行名のリネーム:インデックス名を変更する方法

次に、行名をリネームする方法を紹介します。行名を変更するには、データフレームのインデックス名を変更する必要があります。set_index()関数を使ってインデックスを変更し、rename()関数を使ってインデックス名を変更することができます。

# インデックスを変更する
df_indexed = df.set_index("name")
# インデックス名を変更する
df_indexed_renamed = df_indexed.rename_axis("Name").reset_index()
print(df_indexed_renamed)
      Name  age    city
0    Alice   25   Tokyo
1      Bob   30   Osaka
2  Charlie   35  Nagoya

このコードを実行すると、以下のようなデータフレームが表示されます。set_index()関数を使って、列名「name」をインデックスに変更しています。次に、rename_axis()関数を使って、インデックス名を「Name」に変更しています。最後に、reset_index()関数を使って、インデックスを元に戻しています。

一括でのリネーム:辞書型データを使って一度に複数の列名・行名を変更

複数の列名・行名を一度に変更する場合は、辞書型データを使って一括で変更することができます。rename()関数に辞書型データを渡すことで、一括で変更することができます。

# 列名とインデックス名を一括で変更する
df_renamed_indexed = df.rename(columns={"name": "Name", "age": "Age", "city": "City"}).set_index("Name").rename_axis("Name").reset_index()
print(df_renamed_indexed)
      Name  Age    City
0    Alice   25   Tokyo
1      Bob   30   Osaka
2  Charlie   35  Nagoya

このコードを実行すると、以下のようなデータフレームが表示されます。先程紹介したrename()関数とset_index()関数、rename_axis()関数、reset_index()関数を組み合わせることで、一括で列名とインデックス名を変更することができます。

まとめ

pandasを使って、列名・行名をリネームする方法を解説しました。

  • 列名をリネームするには、rename()関数を用いる。
  • 行名をリネームするには、set_index()関数とrename_axis()関数を用いる。
  • 複数の列名・行名を一括で変更するには、rename()関数、set_index()関数、rename_axis()関数、reset_index()関数を組み合わせる。

以上の方法を使うことで、わかりやすいデータフレームを作成することができます。