Data Science

Pandasマスター:DataFrameの列名を変更する3つの方法

Spread the love

PandasのDataFrameは、Pythonでのデータ操作に不可欠です。多くの場合、より明確で一貫性のある名前、または他のデータセットとの互換性のために、列名を調整する必要があります。Pandasはこれを実現するためのいくつかの効率的な方法を提供しています。この記事では、DataFrame.rename()DataFrame.columnsDataFrame.set_axis()の3つの一般的なアプローチについて説明します。

目次

DataFrame.rename()による列名の変更

rename()メソッドは、個々の列または列のグループを選択的に名前変更できるため、最も柔軟性があります。キーが古い列名、値が新しい列名を表す辞書を使用します。


import pandas as pd

# サンプルDataFrame
data = {'old_col1': [1, 2, 3], 'old_col2': [4, 5, 6], 'old_col3': [7, 8, 9]}
df = pd.DataFrame(data)
print("元のDataFrame:n", df)

# DataFrame.rename()を使用した列名の変更
df = df.rename(columns={'old_col1': 'new_col1', 'old_col3': 'new_col3'})
print("n列名変更後のDataFrame:n", df)

# inplace=Trueを使用したインプレースでの名前変更
df.rename(columns={'old_col2': 'new_col2'}, inplace=True)
print("nインプレースでの名前変更後のDataFrame:n", df)

このコードスニペットは、’old_col1’を’new_col1’に、’old_col3’を’new_col3’に選択的に名前変更します。inplace=True引数を使用すると、DataFrameが直接変更されるため、再代入の必要がなくなります。

DataFrame.columnsによる列名の変更

このメソッドは、すべての列を同時に名前変更するための簡単な方法を提供します。columns属性に新しい列名のリストを直接代入します。このメソッドは簡潔ですが、選択的な名前変更には柔軟性に欠けます。


import pandas as pd

# サンプルDataFrame
data = {'old_col1': [1, 2, 3], 'old_col2': [4, 5, 6], 'old_col3': [7, 8, 9]}
df = pd.DataFrame(data)
print("元のDataFrame:n", df)

# DataFrame.columnsを使用した列名の変更
new_columns = ['new_col1', 'new_col2', 'new_col3']
df.columns = new_columns
print("n列名変更後のDataFrame:n", df)

このコードは、目的の名前を持つリストnew_columnsを作成し、それをdf.columnsに代入します。重要なのは、new_columnsの長さがDataFrameの列数と正確に一致する必要があることです。

DataFrame.set_axis()による列名の変更

set_axis()メソッドは、すべての列を一度に変更するための代替手段を提供します。DataFrame.columnsに似ていますが、軸(列の場合は1、行の場合は0)を明示的に指定します。


import pandas as pd

# サンプルDataFrame
data = {'old_col1': [1, 2, 3], 'old_col2': [4, 5, 6], 'old_col3': [7, 8, 9]}
df = pd.DataFrame(data)
print("元のDataFrame:n", df)

# DataFrame.set_axis()を使用した列名の変更
new_columns = ['new_col1', 'new_col2', 'new_col3']
df = df.set_axis(new_columns, axis=1)
print("n列名変更後のDataFrame:n", df)

この例では、axis=1を使用してset_axis()ですべての列の名前を変更します。DataFrame.columnsと同様に、すべての列名を置き換えます。

要約すると、各メソッドは独自の使用方法を提供します。DataFrame.rename()は選択的な名前変更に最適ですが、DataFrame.columnsDataFrame.set_axis()はすべての列の名前変更に効率的です。ニーズに最適なメソッドを選択してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です