データ分析や機械学習でよく用いられる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()関数を組み合わせる。
以上の方法を使うことで、わかりやすいデータフレームを作成することができます。