Pandas DataFrame で列の名前を変更する方法
-
DataFrame.columns
メソッドを使用して PandasDataFrame
の列の名前を変更する -
DataFrame.rename()
メソッドを使用して PandasDataFrame
の列の名前を変更する -
DataFrame.set_axis()
メソッドを使用して PandasDataFrame
の列の名前を変更する
多くの場合、データ分析で列名を操作する必要があります。この記事では、すでに定義されている 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