Pandas DataFrame を例に、Pandas で列の名前を変更する方法を見てみましょう。ここでは、pandas DataFrame で列名を変更する 5 つの異なる方法について説明します。
Pandas DataFrame で列の名前を変更する方法
方法 1: rename() 関数の使用
Pandas データフレーム内の列の名前を変更する 1 つの方法は、rename() 関数を使用することです。この方法は、名前を変更する列の情報のみを指定する必要があるため、選択した列の名前を変更する必要がある場合に非常に役立ちます。
例 1: の名前を変更する 単一列 。
パイソン # Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd) rankings_pd.rename(columns = {'test':'TEST'}, inplace = True) # After renaming the columns print('
After modifying first column:
', rankings_pd.columns)>
出力:

例 2: 名前を変更する 複数の列 。
パイソン # Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd.columns) rankings_pd.rename(columns = {'test':'TEST', 'odi':'ODI', 't20':'T20'}, inplace = True) # After renaming the columns print(rankings_pd.columns)>
出力:

方法 2: 新しい列名のリストを割り当てることによって
新しい名前を含むリストを、列の名前を変更する Dataframe オブジェクトの columns 属性に直接割り当てることによって、列の名前を変更することもできます。この方法の欠点は、一部の列のみの名前を変更したい場合でも、すべての列に新しい名前を付ける必要があることです。
パイソン
# Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd.columns) rankings_pd.columns = ['TEST', 'ODI', 'T-20'] # After renaming the columns print(rankings_pd.columns)>
出力:

方法 3: DataFrame の set_axis() 関数を使用して列名を変更する
この例では、set_axis 関数を使用して列名を変更し、列内の新しい名前に置き換える必要がある新しい列名と軸をパラメーターとして渡します。
パイソン # Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd.columns) rankings_pd.set_axis(['A', 'B', 'C'], axis='columns') # After renaming the columns print(rankings_pd.columns) rankings_pd.head()>
出力:
Java int から char へ
方法 4: DataFrame の add_prefix() 関数と add_suffix() 関数を使用して列名を変更する
この例では、add_Sufix 関数と add_Prefix 関数を使用して列名を変更し、列名の姓名に追加する接頭辞と接尾辞を渡します。
パイソン # Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd.columns) rankings_pd = rankings_pd.add_prefix('col_') rankings_pd = rankings_pd.add_suffix('_1') # After renaming the columns rankings_pd.head()>
出力:
col_test_1 col_odi_1 col_t20_1 0 India England Pakistan 1 South Africa India India 2 England New Zealand Australia 3 New Zealand South Africa England 4 Australia Pakistan New Zealand>
方法 5: Dataframe.columns.str.replace 関数を使用して列名の特定のテキストを置換する
この例では、replace 関数を使用して列名を変更し、古い名前と新しい名前を列のパラメーターとして渡します。
パイソン # Import pandas package import pandas as pd # Define a dictionary containing ICC rankings rankings = {'test': ['India', 'South Africa', 'England', 'New Zealand', 'Australia'], 'odi': ['England', 'India', 'New Zealand', 'South Africa', 'Pakistan'], 't20': ['Pakistan', 'India', 'Australia', 'England', 'New Zealand']} # Convert the dictionary into DataFrame rankings_pd = pd.DataFrame(rankings) # Before renaming the columns print(rankings_pd.columns) # df = rankings_pd rankings_pd.columns = rankings_pd.columns.str.replace('test', 'Col_TEST') rankings_pd.columns = rankings_pd.columns.str.replace('odi', 'Col_ODI') rankings_pd.columns = rankings_pd.columns.str.replace('t20', 'Col_T20') rankings_pd.head()>
出力: