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

Puneet Dobhal 2023年1月30日
  1. DataFrame.columns メソッドを使用して Pandas DataFrame の列の名前を変更する
  2. DataFrame.rename() メソッドを使用して Pandas DataFrame の列の名前を変更する
  3. DataFrame.set_axis() メソッドを使用して Pandas DataFrame の列の名前を変更する
Pandas DataFrame で列の名前を変更する方法

多くの場合、データ分析で列名を操作する必要があります。この記事では、すでに定義されている panadas DataFrame の列名を操作/名前変更するためのさまざまな方法を探ります。

DataFrame.columns メソッドを使用して Pandas DataFrame の列の名前を変更する

この方法は非常に簡単で、列の名前を直接変更できます。次のように DataFrame.columns 属性を使用して新しい列名のリストを割り当てることができます:

import pandas as pd

example_df = pd.DataFrame(
    [["John", 20, 45], ["Peter", 21, 62], ["Scot", 25, 68]],
    index=[0, 1, 2],
    columns=["Name", "Age", "Marks"],
)

print "\nOriginal DataFrame"
print (pd.DataFrame(example_df))
example_df.columns = ["Name", "Age", "Roll_no"]

print "\nModified DataFrame"
print (pd.DataFrame(example_df))

出力:

Original DataFrame
    Name  Age  Marks
0   John   20     45
1  Peter   21     62
2   Scot   25     68

Modified DataFrame
    Name  Age  Roll_no
0   John   20       45
1  Peter   21       62
2   Scot   25       68

このアプローチの 1つの欠点は、列の名前を 1つだけ変更する必要がある場合でも、列全体をリストする必要があることです。列の数が多い場合、列リスト全体を指定することは実用的ではありません。

DataFrame.rename() メソッドを使用して Pandas DataFrame の列の名前を変更する

前のメソッドの代替アプローチは、DataFrame.rename() メソッドを使用することです。この方法は、すべての列の名前を変更する必要がない場合に非常に便利です。

古い列名をキー、新しい名前を値として指定する必要があります。

import pandas as pd

example_df = pd.DataFrame(
    [["John", 20, 45, 78], ["Peter", 21, 62, 68], ["Scot", 25, 68, 95]],
    index=[0, 1, 2],
    columns=["Name", "Age", "Marks", "Roll_no"],
)

print "\nOriginal DataFrame"
print (pd.DataFrame(example_df))
example_df.rename(columns={"Marks": "Roll_no", "Roll_no": "Marks"}, inplace=True)

print "\nModified DataFrame"
print (pd.DataFrame(example_df))

出力:

Original DataFrame
    Name  Age  Marks  Roll_no
0   John   20     45       78
1  Peter   21     62       68
2   Scot   25     68       95

Modified DataFrame
    Name  Age  Roll_no  Marks
0   John   20       45     78
1  Peter   21       62     68
2   Scot   25       68     95

この方法の最も重要な利点は、必要な数の列を指定できることです。特定の列の名前を変更する必要がある場合に非常に効果的であり、以前の方法とは異なり、DataFrame の列リスト全体をリストする必要はありません。

DataFrame.rename() 関数呼び出しで、inplace パラメーターを True に指定したことに気付くでしょう。inplace パラメータはデフォルトで False で、新しい Pandas DataFrame を返すかどうかを指定します。

True と指定すると、関数呼び出しは新しい Pandas DataFrame を返さず、既存の DataFrame を変更します。

DataFrame.set_axis() メソッドを使用して Pandas DataFrame の列の名前を変更する

Pandas の列の名前を変更するもう 1つの便利な方法は DataFrame です。このメソッドを使用するときは、列リスト全体を指定する必要があります。

import pandas as pd

example_df = pd.DataFrame(
    [["John", 20, 45, 78], ["Peter", 21, 62, 68], ["Scot", 25, 68, 95]],
    index=[0, 1, 2],
    columns=["Name", "Age", "Marks", "Roll_no"],
)

print "\nOriginal DataFrame"
print (pd.DataFrame(example_df))

example_df.set_axis(["Name", "Age", "Roll_no", "Marks"], axis="columns", inplace=True)

print "\nModified DataFrame"
print (pd.DataFrame(example_df))

出力:

Original DataFrame
    Name  Age  Marks  Roll_no
0   John   20     45       78
1  Peter   21     62       68
2   Scot   25     68       95

Modified DataFrame
    Name  Age  Roll_no  Marks
0   John   20       45     78
1  Peter   21       62     68
2   Scot   25       68     95

関連記事 - Pandas DataFrame