テクノロジー 開発 非公開: Pandas 列の名前変更が簡単に: 方法とベスト プラクティス

Pandas 列の名前変更が簡単に: 方法とベスト プラクティス

この記事は、Pandas で列の名前を変更する方法に関するガイドです。

Pandas は、データセットを処理するための Python ライブラリです。 CSV、JSON、SQL などのさまざまなファイル形式からデータを簡単に読み取ります。データが Pandas に読み込まれると、DataFrame オブジェクトに保存されます。

DataFrame は 2 次元オブジェクトです。つまり、データは行と列を含むテーブルのような形式で保存されます。これは、CSV またはスプレッドシート ファイルにデータを保存するのと似ています。データをロードすると、パンダはデータセットのソース ファイルから列名をロードしようとします。

列

ただし、ロードされた列名は理想的ではない可能性があり、列の名前をより意味のある名前に変更することが必要になる場合があります。

この記事では、まず Pandas で列に名前を付けるためのベスト プラクティスについて説明します。その後、本題である名前を変更する方法に移ります。

Pandas の列に名前を付けるためのベスト プラクティス

この記事の名前変更ガイド部分に進む前に、パンダで列に名前を付けるときに従う必要があるベスト プラクティスと規則をいくつか紹介します。

✅ わかりやすい名前を使用してください。 col_1 のような難解な名前は理解するのが難しく、データセットに含まれるデータに関する多くの情報を伝えません。

✅ 列に名前を付けるときはスネークケースを使用します。スネークの場合、列名は NumberOfPeople number_of_people ようになります。

✅ スネークケースが推奨されますが、元のデータセットが使用する命名規則を使用する必要があります。これにより、データセットと Pandas の DataFrame オブジェクトの間を移動する際の混乱が回避されます。

✅ どの命名規則を使用する場合でも、データセット全体で一貫性を維持してください。一部の列に PascalCase を使用して名前を付け、その他の列にsnake_caseを使用することは避けてください。

✅ 最後に、短い名前を使用するようにしてください。ノートブックでのコードの提案と補完は通常標準以下であるため、これらの方が入力しやすいです。これは、ノートブックでコーディングするには多くのコードを手動で入力する必要があり、名前が短いほど作業が楽になることを意味します。

Pandas で列の名前を変更する方法

この記事のコンテンツは 2 つの方法で利用できます。まずは参考として読んでいただければと思います。 2 番目に、コーディングもしながら進めることができるため、説明した概念を記憶する可能性が高くなります。私は後者の方法をお勧めします。

コーディングには、Google Colab でホストされているノートブックを使用します。作成して従うこともできます。完全に無料です。このチュートリアルで記述するすべてのコードを記載したノートブックは、 ここから 入手できます。

ノートブックのセットアップ

pandas で列の名前変更を開始する前に、ノートブックをセットアップしてサンプル データをロードしましょう。コードセルを作成し、以下のコードを使用してパンダをインポートします。

 import pandas as pd

パンダをインポートした後、 california_housing_data データセットを読み込むことができます。これは、Google Colab ノートブックを作成するときにサンプル データセットとしてデフォルトで利用可能です。

 housing_data = pd.read_csv('/content/sample_data/california_housing_train.csv')

次のコードを使用して、データセットの最初の数行を確認できます。

 housing_data.head()

次のようにして、データセットに存在する列をリストすることもできます。

 housing_data.columns

これにより、次の出力が生成されるはずです。

 Index(['longitude', 'latitude', 'housing_median_age', 'total_rooms',
       'total_bedrooms', 'population', 'households', 'median_income',
       'median_house_value'],
      dtype='object')

これは、データが正しくロードされ、DataFrame に必要なものが含まれていることを意味します。

方法 1: 名前変更機能を使用する

pandas で列の名前を変更する最も簡単な方法は、DataFrame オブジェクトの rename メソッドを使用することです。このメソッドを使用すると、rename メソッドを呼び出して列の rename 。このメソッドは複数の引数を受け取ります。

この場合、列の名前を変更することに興味があるため、columns キーワード引数を渡します。この引数の値は、古い列名から新しい列名へのマッピングをエントリが表す辞書です。以下は、 households 列の名前を houses に変更する例です。

 housing_data.rename(columns={ 'households': 'houses' })

これにより、次の出力が生成されるはずです。

pandas データフレーム列の名前を変更した後のハウジング データ
pandas データフレーム列の名前を変更した後のハウジング データ

ご覧のとおり、キーが古い列名、値が新しい列名であるディクショナリを渡します。値は単なる文字列である必要はありません。関数によって返される値が新しい列名である関数を使用することもできます。さらに多くの列の名前を変更したい場合は、辞書にさらにエントリを追加できます。

方法 2: 列文字列を置換する

パンダで列の名前を変更するために使用できるもう 1 つの方法は、DataFrame の列文字列を置き換えることです。現在 population という名前の列の名前を number_of_people に変更したいとします。このメソッドを使用すると、次のコードを記述します。

 housing_data.columns = housing_data.columns.str.replace('population', 'number_of_people')

変更されたリストを出力するには、次のコードを使用します。

 housing_data

これにより、画面に次の出力が生成されるはずです。

2023-04-04-07-35-06 のスクリーンショット
2023-04-04-07-35-06 のスクリーンショット

方法 3: 列名のリストを割り当てる

あるいは、DataFrame の columns プロパティにリストを割り当てることで、Pandas の列の名前を変更できます。この例では、すべての列の名前を変更して、すべての列に数字が使用されるようにしたい場合は、次のコードを使用できます。

 housing_data.columns = [x for x in range(9)]

この例では、 housing_data.columns 属性を 0 ~ 8 の整数のリストに設定しました。リストを生成するには、 for ループを使用して値のリストを簡単に生成するネイティブ Python 機能であるリスト内包表記を使用しました。

この方法を使用する場合の欠点は、列名のセット全体の名前を変更する必要があることです。列のサブセットの名前を変更することはできません。理想的には、列名はもっとわかりやすいものにする必要がありますが、ここではデモンストレーションとして数字を使用しているだけです。

次のように記述することで出力を表示できます。

 housing_data 
2023-04-04-05-58-41 のスクリーンショット
2023-04-04-05-58-41 のスクリーンショット

方法 4: set_axis() 関数を使用して Pandas の列の名前を変更する

ここで説明するメソッドは、DataFrame オブジェクトの set_axis メソッドです。このメソッドは、Pandas の 2 つの軸のいずれかの軸値として値のリストを設定するために使用されます。列の名前を変更するので、 axis 1 を設定します。このメソッドを使用するには、次のコードを使用します。

 column_names = [str(x) for x in range(8, -1, -1)]
housing_data.set_axis(column_names, axis=1, inplace=True)

最初の行では、8 から 0 までの値のリストを降順で生成し、 column_names 変数に格納します。 2 行目では、set_axis メソッドを呼び出し、 column_names 引数として指定し、変更する軸を軸 1 に設定します。また、元の DataFrame を変更するように inplace True に設定します。

次のように記述することで DataFrame を表示できます。

 housing_data

これにより、以下が生成されるはずです。

2023-04-04-06-47-20 のスクリーンショット
2023-04-04-06-47-20 のスクリーンショット

最後の言葉

この記事では、pandas でデータが表形式でどのように保存されるかを簡単に紹介しました。また、作業を容易にするために Pandas の列に名前を付けるためのベスト プラクティスについても説明しました。

最後に、そして最も重要なことですが、パンダで列の名前を変更するさまざまな方法についても説明しました。

次に、Pandas DataFrame を作成する方法を確認してください (例付き)。

「 Pandas 列の名前変更が簡単に: 方法とベスト プラクティス」についてわかりやすく解説!絶対に観るべきベスト2動画

Pandas入門講座|12.concat関数でデータフレーム同士を結合する方法【PythonのライブラリPandas】
【毎日Python】Pythonでデータフレームの任意の位置に列を追加する方法|pandas.DataFrame.insert

この記事は、Pandas で列の名前を変更する方法に関するガイドです。

Pandas は、データセットを処理するための Python ライブラリです。 CSV、JSON、SQL などのさまざまなファイル形式からデータを簡単に読み取ります。データが Pandas に読み込まれると、DataFrame オブジェクトに保存されます。

DataFrame は 2 次元オブジェクトです。つまり、データは行と列を含むテーブルのような形式で保存されます。これは、CSV またはスプレッドシート ファイルにデータを保存するのと似ています。データをロードすると、パンダはデータセットのソース ファイルから列名をロードしようとします。

列

ただし、ロードされた列名は理想的ではない可能性があり、列の名前をより意味のある名前に変更することが必要になる場合があります。

この記事では、まず Pandas で列に名前を付けるためのベスト プラクティスについて説明します。その後、本題である名前を変更する方法に移ります。

Pandas の列に名前を付けるためのベスト プラクティス

この記事の名前変更ガイド部分に進む前に、パンダで列に名前を付けるときに従う必要があるベスト プラクティスと規則をいくつか紹介します。

✅ わかりやすい名前を使用してください。 col_1 のような難解な名前は理解するのが難しく、データセットに含まれるデータに関する多くの情報を伝えません。

✅ 列に名前を付けるときはスネークケースを使用します。スネークの場合、列名は NumberOfPeople number_of_people ようになります。

✅ スネークケースが推奨されますが、元のデータセットが使用する命名規則を使用する必要があります。これにより、データセットと Pandas の DataFrame オブジェクトの間を移動する際の混乱が回避されます。

✅ どの命名規則を使用する場合でも、データセット全体で一貫性を維持してください。一部の列に PascalCase を使用して名前を付け、その他の列にsnake_caseを使用することは避けてください。

✅ 最後に、短い名前を使用するようにしてください。ノートブックでのコードの提案と補完は通常標準以下であるため、これらの方が入力しやすいです。これは、ノートブックでコーディングするには多くのコードを手動で入力する必要があり、名前が短いほど作業が楽になることを意味します。

Pandas で列の名前を変更する方法

この記事のコンテンツは 2 つの方法で利用できます。まずは参考として読んでいただければと思います。 2 番目に、コーディングもしながら進めることができるため、説明した概念を記憶する可能性が高くなります。私は後者の方法をお勧めします。

コーディングには、Google Colab でホストされているノートブックを使用します。作成して従うこともできます。完全に無料です。このチュートリアルで記述するすべてのコードを記載したノートブックは、 ここから 入手できます。

ノートブックのセットアップ

pandas で列の名前変更を開始する前に、ノートブックをセットアップしてサンプル データをロードしましょう。コードセルを作成し、以下のコードを使用してパンダをインポートします。

 import pandas as pd

パンダをインポートした後、 california_housing_data データセットを読み込むことができます。これは、Google Colab ノートブックを作成するときにサンプル データセットとしてデフォルトで利用可能です。

 housing_data = pd.read_csv('/content/sample_data/california_housing_train.csv')

次のコードを使用して、データセットの最初の数行を確認できます。

 housing_data.head()

次のようにして、データセットに存在する列をリストすることもできます。

 housing_data.columns

これにより、次の出力が生成されるはずです。

 Index(['longitude', 'latitude', 'housing_median_age', 'total_rooms',
       'total_bedrooms', 'population', 'households', 'median_income',
       'median_house_value'],
      dtype='object')

これは、データが正しくロードされ、DataFrame に必要なものが含まれていることを意味します。

方法 1: 名前変更機能を使用する

pandas で列の名前を変更する最も簡単な方法は、DataFrame オブジェクトの rename メソッドを使用することです。このメソッドを使用すると、rename メソッドを呼び出して列の rename 。このメソッドは複数の引数を受け取ります。

この場合、列の名前を変更することに興味があるため、columns キーワード引数を渡します。この引数の値は、古い列名から新しい列名へのマッピングをエントリが表す辞書です。以下は、 households 列の名前を houses に変更する例です。

 housing_data.rename(columns={ 'households': 'houses' })

これにより、次の出力が生成されるはずです。

pandas データフレーム列の名前を変更した後のハウジング データ
pandas データフレーム列の名前を変更した後のハウジング データ

ご覧のとおり、キーが古い列名、値が新しい列名であるディクショナリを渡します。値は単なる文字列である必要はありません。関数によって返される値が新しい列名である関数を使用することもできます。さらに多くの列の名前を変更したい場合は、辞書にさらにエントリを追加できます。

方法 2: 列文字列を置換する

パンダで列の名前を変更するために使用できるもう 1 つの方法は、DataFrame の列文字列を置き換えることです。現在 population という名前の列の名前を number_of_people に変更したいとします。このメソッドを使用すると、次のコードを記述します。

 housing_data.columns = housing_data.columns.str.replace('population', 'number_of_people')

変更されたリストを出力するには、次のコードを使用します。

 housing_data

これにより、画面に次の出力が生成されるはずです。

2023-04-04-07-35-06 のスクリーンショット
2023-04-04-07-35-06 のスクリーンショット

方法 3: 列名のリストを割り当てる

あるいは、DataFrame の columns プロパティにリストを割り当てることで、Pandas の列の名前を変更できます。この例では、すべての列の名前を変更して、すべての列に数字が使用されるようにしたい場合は、次のコードを使用できます。

 housing_data.columns = [x for x in range(9)]

この例では、 housing_data.columns 属性を 0 ~ 8 の整数のリストに設定しました。リストを生成するには、 for ループを使用して値のリストを簡単に生成するネイティブ Python 機能であるリスト内包表記を使用しました。

この方法を使用する場合の欠点は、列名のセット全体の名前を変更する必要があることです。列のサブセットの名前を変更することはできません。理想的には、列名はもっとわかりやすいものにする必要がありますが、ここではデモンストレーションとして数字を使用しているだけです。

次のように記述することで出力を表示できます。

 housing_data 
2023-04-04-05-58-41 のスクリーンショット
2023-04-04-05-58-41 のスクリーンショット

方法 4: set_axis() 関数を使用して Pandas の列の名前を変更する

ここで説明するメソッドは、DataFrame オブジェクトの set_axis メソッドです。このメソッドは、Pandas の 2 つの軸のいずれかの軸値として値のリストを設定するために使用されます。列の名前を変更するので、 axis 1 を設定します。このメソッドを使用するには、次のコードを使用します。

 column_names = [str(x) for x in range(8, -1, -1)]
housing_data.set_axis(column_names, axis=1, inplace=True)

最初の行では、8 から 0 までの値のリストを降順で生成し、 column_names 変数に格納します。 2 行目では、set_axis メソッドを呼び出し、 column_names 引数として指定し、変更する軸を軸 1 に設定します。また、元の DataFrame を変更するように inplace True に設定します。

次のように記述することで DataFrame を表示できます。

 housing_data

これにより、以下が生成されるはずです。

2023-04-04-06-47-20 のスクリーンショット
2023-04-04-06-47-20 のスクリーンショット

最後の言葉

この記事では、pandas でデータが表形式でどのように保存されるかを簡単に紹介しました。また、作業を容易にするために Pandas の列に名前を付けるためのベスト プラクティスについても説明しました。

最後に、そして最も重要なことですが、パンダで列の名前を変更するさまざまな方法についても説明しました。

次に、Pandas DataFrame を作成する方法を確認してください (例付き)。

「 Pandas 列の名前変更が簡単に: 方法とベスト プラクティス」についてわかりやすく解説!絶対に観るべきベスト2動画

Pandas入門講座|12.concat関数でデータフレーム同士を結合する方法【PythonのライブラリPandas】
【毎日Python】Pythonでデータフレームの任意の位置に列を追加する方法|pandas.DataFrame.insert