Skip to content

Pandasで列名を変更する:包括的なガイド

Updated on

データ分析は今日のデータ駆動の世界において重要なタスクです。生データを理解しやすく意味のある形式にクリーニング、整理、および変換する必要があります。データ分析で最も基本的なタスクの1つは、列の名前変更であり、これによりデータがより情報豊富で理解しやすくなります。

このチュートリアルでは、異なる方法を使用してPandas DataFrame内で列名を変更する方法を探索します。データ分析をより明確かつ簡潔にするためのベストプラクティス、ヒント、トリックについて説明します。始めましょう!

Python Pandas Dataframe からコード不要でデータビジュアライゼーションを素早く作成したいですか?

PyGWalker は、可視化を伴う探索的データ分析のためのPythonライブラリです。 PyGWalker (opens in a new tab)は、pandasデータフレーム(およびポーラルデータフレーム)をTableauスタイルのユーザーインターフェースに変換し、可視的探索のためのJupyter Notebookデータ分析およびデータ可視化ワークフローを簡素化できます。

PyGWalkerを使用したデータ可視化 (opens in a new tab)

DataFrame Rename Columnとは?

コードの部分に深く入る前に、まず、Pandas DataFrame内の列名変更とは何か、およびなぜ重要かについて理解しましょう。

Pandas DataFrameでは、列は他の列と区別するユニークな識別子として命名されます。これらのユニークな識別子が情報を提供していない場合や、データと不整合である場合、混乱と誤解を招く可能性があります。そのような場合、列の名前変更が情報を提供し、理解しやすくするのに役立ちます。

列名変更は、1つまたは複数の列の名前をPandas DataFrame内で変更するプロセスです。これは、列ラベルまたは列のインデックスを選択して実行されます。それにより、データの読みやすさが向上し、異なる列間の関係を理解するのに役立ちます。

Pandas DataFrameで列名を変更する方法

Pandasは、DataFrame内の列の名前を変更するためのいくつかの方法を提供しています。最も一般的に使用される方法とベストプラクティスを説明します。

1つの列の名前を変更する

まず、Pandas DataFrame内の単一の列名を変更する最も基本的な方法から始めましょう。これを行うには、renameメソッドを使用します。

# サンプルDataFrameの作成
import pandas as pd
 
data = {'Name': ['John', 'Alex', 'Peter'],
        'Age': [25, 24, 28],
        'Gender': ['Male', 'Male', 'Male']}
 
df = pd.DataFrame(data)
 
# 'Age'列を'Years'に変更
df = df.rename(columns={'Age': 'Years'})
 
# DataFrameの出力
print(df)

出力:

    Name  Years Gender
0   John     25   Male
1   Alex     24   Male
2  Peter     28   Male

ここでは、NameAge、およびGenderの列を持つサンプルDataFrameを作成しました。renameメソッドを使用して、列Ageの名前をYearsに変更しました。renameメソッドは、入力として辞書を取り、それぞれのキーは古い列名、値は新しい列名です。

複数の列の名前を変更する

1つの列の名前変更は簡単ですが、複数の列を一度に変更する場合はどうでしょうか?そのような場合、古い列名と新しい列名の辞書を使用して、同じrenameメソッドを使用できます。

# サンプルDataFrameの作成
import pandas as pd
 
data = {'Name': ['John', 'Alex', 'Peter'],
        'Age': [25, 24, 28],
        'Department': ['IT', 'HR', 'Marketing']}
 
df = pd.DataFrame(data)
 
# 'Age'と'Department'列の名前変更
df = df.rename(columns={'Age': 'Years', 'Department': 'Dept'})
 
# DataFrameの出力
print(df)

出力:

    Name  Years       Dept
0   John     25         IT
1   Alex     24         HR
2  Peter     28  Marketing

ここでは、Age列をYearsに、Department列をDeptに変更するために、古い列名と新しい列名の辞書を使用してrenameメソッドを使用して2つの列名を変更しました。

set_axisメソッドを使用して列名を変更する

Pandas DataFrame内の列名を変更する別の方法は、set_axisメソッドを使用することです。柔軟で便利な方法で、元のDataFrameが変更されることはなく、新しいDataFrameが作成されます。このset_axisメソッドは、元のDataFrameを変更するのではなく、元のDataFrameをコピーした新しいDataFrameを作成します。これにより、元データに影響を与えることなく、最新の列名で作業できます。

# サンプルDataFrameの作成
import pandas as pd
 
data = {'Name_': ['John', 'Alex', 'Peter'],
        'Age_': [25, 24, 28],
        'Department_': ['IT', 'HR', 'Marketing']}
 
df = pd.DataFrame(data)
 
# 列の名前のリストの作成
new_column_names = ['Name', 'Years', 'Dept']
 
# "set_axis"メソッドを使用して、列の名前を変更する。
df = df.set_axis(new_column_names, axis=1, inplace=False)
 
# DataFrameの出力
print(df)

出力:

    Name  Years       Dept
0   John     25         IT
1   Alex     24         HR
2  Peter     28  Marketing
``以下の mdx をフロントマターを用いて日本語に翻訳します。


```python
# サンプルデータフレームの作成
import pandas as pd

data = {'Name': ['John', 'Alex', 'Peter'], 
        'Age': [25, 24, 28], 
        'Gender': ['Male', 'Male', 'Male']}

df = pd.DataFrame(data)

# インデックスまたはラベルを選択して列名を変更する
df.columns = df.columns.set_axis(['a', 'Years', 'b'], axis=1, inplace=False)

# データフレームの出力
print(df) 

出力:

    Name  Years     b
0   John     25  Male
1   Alex     24  Male
2  Peter     28  Male

ここでは、set_axis メソッドを使用して列の名前を選択します。このメソッドは、ラベル、軸、inplace の3つの引数を取得します。ラベルを新しい列名に設定し、軸を1に設定して列を表すことによって、列名を設定しています。 inplace パラメータは、新しいデータフレームを返すために False に設定されています。

リスト内包表記を使用して列の名前を変更する

Pandas DataFrame でも、リスト内包表記を使用して列の名前を変更することができます。複数の列を一度にリネームすることができる、単純でエレガントな方法です。

# サンプルデータフレームの作成
import pandas as pd
 
data = {'Name': ['John', 'Alex', 'Peter'], 
        'Age': [25, 24, 28], 
        'Department': ['IT', 'HR', 'Marketing']}
 
df = pd.DataFrame(data)
 
# 'Age' と 'Department' の列をリスト内包表記を使用してリネームする
df.columns = [col.replace('_', ' ').title() for col in df.columns]
 
# データフレームの出力
print(df) 

出力:

    Name  Age  Department
0   John   25          IT
1   Alex   24          HR
2  Peter   28   Marketing

リスト内包表記を使用して、列名に含まれるアンダースコアをスペースに置換し、title()メソッドを使用して最初の文字を大文字に変換することにより、列名を変更しています。

DataFrame Rename by Index

Pandas DataFrame でも、列の位置情報を使用して列名を変更することができます。old と new の列インデックスが含まれる辞書を使用した rename メソッドを使用することができます。

# サンプルデータフレームの作成
import pandas as pd
 
data = {'Name': ['John', 'Alex', 'Peter'], 
        'Age': [25, 24, 28], 
        'Department': ['IT', 'HR', 'Marketing']}
 
df = pd.DataFrame(data)
 
# インデックスを使用して '2' 列を 'Dept' 列にリネームする
df = df.rename(columns={2: 'Dept'})
 
# データフレームの出力
print(df) 

出力:

    Name  Age       Dept
0   John   25         IT
1   Alex   24         HR
2  Peter   28  Marketing

ここでは、インデックス位置 2 の列を Dept にリネームするために rename メソッドを使用しています。

DataFrame Rename Column with List

Pandas DataFrame でも、列名のリストを選択して列名を変更することができます。以下は、その方法の説明です。

# サンプルデータフレームの作成
import pandas as pd
 
data = {'Name': ['John', 'Alex', 'Peter'], 
        'Age': [25, 24, 28], 
        'Department': ['IT', 'HR', 'Marketing']}
 
df = pd.DataFrame(data)
 
# 'Name' と 'Department' の列名をリスト内包表記を使用してリネームする
df.columns = ['ID', 'Years', 'Dept']
 
# データフレームの出力
print(df) 

出力:

     ID  Years       Dept
0   John     25         IT
1   Alex     24         HR
2  Peter     28  Marketing

Name 列と Department 列をそれぞれ ID 列と Dept 列にリネームするために、列名のリストを使用しています。

まとめ

このチュートリアルでは、Pandas DataFrame で列名を変更する異なる方法、rename メソッド、set_axis メソッド、リスト内包表記、インデックスを使用したリネーム、リストを使用したリネームを学びました。また、データ分析をより整理されたものにするためのベストプラクティス、コツ、およびトリックについても調べました。

列のリネームは、データ分析において重要なステップであり、データの可読性を高め、異なる列の関係を理解するのに役立ちます。上記の方法を使用することで、Pandas DataFrame で簡単に列名を変更し、データ分析をより効果的かつ効率的にすることができます。

このチュートリアルが役立つことを願っており、Happy coding!


リンク:

よくある質問

  1. DataFrame内の列の名前を変更する方法はありますか?

    DataFrame内の列の名前を変更するには、pandasのrename()メソッドを使用します。辞書やマッピングを使用して、古い列名と新しい列名を指定します。このメソッドを使用すると、単一の列または複数の列を一度に変更することができます。

  2. Pandasで列のインデックスによって列の名前を変更する方法はありますか?

    pandasでは、rename()メソッドのcolumnsパラメータを使用して、列のインデックスによって列の名前を変更することができます。現在の列インデックスをキー、新しい列名を値とする辞書を渡します。このメソッドを使用すると、DataFrame内の列の位置に基づいて列の名前を変更することができます。

  3. DataFrame内で複数の列の名前を変更するにはどうすればよいですか?

    DataFrame内で複数の列の名前を変更するには、rename()メソッドのcolumnsパラメータを使用します。現在の列名をキー、新しい列名を値とする辞書を渡します。このメソッドを使用すると、複数の列を同時に変更することができます。また、特定の基準に基づいて列の名前を変更する際にも柔軟性を提供します。