PythonでPandasデータフレームの列の順序を変更する4つの方法

スポンサーリンク

この記事では、与えられたpandas DataFrameオブジェクトの列の順序を変更する方法について説明します。

データ前処理の段階で、pandas DataFrameの列が希望する順番になっていない状況に遭遇することがあります。

その場合、DataFrameの列の順番を変更する必要があります。

こちらもご覧ください。

Pandas DataFrameのインデックス作成。

スポンサーリンク

Pandas Dataframe のカラムの順番を変更するには?

それでは早速、Pandasでデータフレームの列順を変更するための様々な方法を紹介します。

方法1:希望する順序の列リストを使用する

これは、pandas DataFrameオブジェクトのカラムの順序を変更する最も簡単な方法の一つです。

この方法では、DataFrameのカラムのPythonリストを希望する順序でDataFrameオブジェクトに渡すだけです。

それでは、このメソッドをPythonでどのようにコーディングするか見てみましょう。

# Method-1
 
# Import pandas Python module
import pandas as pd
 
# Create a pandas DataFrame
df = pd.DataFrame({'Roll': [111, 112, 113, 114, 115],
                    'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
                    'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
                    'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45]})
print('Given pandas DataFrame:
'
)
print(df)
 
# Change the order of the DataFrame
# Using the desired order columns list
df_1 = df[['Name', 'CGPA', 'Roll', 'Branch']]
print('
Pandas DataFrame with changed column order:
'
)
print(df_1)

結果は以下の通りです。

Given pandas DataFrame:
 
   Roll    Name Branch  CGPA
0   111  Sanjay    ECE  8.15
1   112    Aman    ICE  9.03
2   113   Ankit     IT  7.85
3   114    Ravi    CSE  8.55
4   115   Komal    CHE  9.45
 
Pandas DataFrame with changed column order:
 
     Name  CGPA  Roll Branch
0  Sanjay  8.15   111    ECE
1    Aman  9.03   112    ICE
2   Ankit  7.85   113     IT
3    Ravi  8.55   114    CSE
4   Komal  9.45   115    CHE

方法2:loc メソッドを利用する

このメソッドでは、pandas DataFrame クラスの loc メソッドを使用します。

loc` メソッドを使うと、Pythonのカラム名のリストを提供することで、pandas DataFrame オブジェクトのカラムを並べ替えることができます。

このメソッドを実装するための Python コードを書いてみましょう。

# Method-2
 
# Import pandas Python module
import pandas as pd
 
# Create a pandas DataFrame
df = pd.DataFrame({'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
                    'Roll': [111, 112, 113, 114, 115],
                    'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
                    'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45]})
print('Given pandas DataFrame:
'
)
print(df)
 
# Change the order of the DataFrame
# Using the loc method of pandas DataFrame class
df_2 = df.loc[2:4, ['Roll', 'Name', 'CGPA', 'Branch']]
print('
Pandas DataFrame with changed column order:
'
)
print(df_2)

結果は以下の通りです。

結果は以下の通りです。

Given pandas DataFrame:
 
     Name  Roll Branch  CGPA
0  Sanjay   111    ECE  8.15
1    Aman   112    ICE  9.03
2   Ankit   113     IT  7.85
3    Ravi   114    CSE  8.55
4   Komal   115    CHE  9.45
 
Pandas DataFrame with changed column order:
 
   Roll   Name  CGPA Branch
2   113  Ankit  7.85     IT
3   114   Ravi  8.55    CSE
4   115  Komal  9.45    CHE

方法3:iloc メソッドを使用する

このメソッドでは、pandas DataFrameクラスの iloc メソッドを使用します。

iloc`メソッドを使用すると、列名の代わりに列インデックス(0, 1, 2, 3, …)のPythonリストを提供することで、pandas DataFrameオブジェクトの列を並べ替えることができます。

この方法をPythonのコードで実装する方法を見てみましょう。

# Method-3
 
# Import pandas Python module
import pandas as pd
 
# Create a pandas DataFrame
df = pd.DataFrame({'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45],
                    'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
                    'Roll': [111, 112, 113, 114, 115],
                    'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE']})
print('Given pandas DataFrame:
'
)
print(df)
 
# Change the order of the DataFrame
# Using the iloc method of pandas DataFrame class
df_3 = df.iloc[1:4, [1, 2, 0, 3]]
print('
Pandas DataFrame with changed column order:
'
)
print(df_3)

結果を出力すると、以下の様になります。

Given pandas DataFrame:
 
   CGPA    Name  Roll Branch
0  8.15  Sanjay   111    ECE
1  9.03    Aman   112    ICE
2  7.85   Ankit   113     IT
3  8.55    Ravi   114    CSE
4  9.45   Komal   115    CHE
 
Pandas DataFrame with changed column order:
 
    Name  Roll  CGPA Branch
1   Aman   112  9.03    ICE
2  Ankit   113  7.85     IT
3   Ravi   114  8.55    CSE

注意: 上記の2つのメソッド lociloc では、与えられた pandas DataFrame オブジェクトの行の範囲のみを選択することができるという利点が追加されています。

方法4:reindex()関数を使用する

このメソッドでは、pandas DataFrame オブジェクトの reindex() 関数を使用します。

reindex()`関数を使うと、Pythonのカラム名のリストを渡すことで、pandas DataFrameオブジェクトのカラムの順番を並べ替えることができます。

このメソッドを Python コードで実装してみましょう。

# Method-4
 
# Import pandas Python module
import pandas as pd
 
# Create a pandas DataFrame
df = pd.DataFrame({'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
                    'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45],
                    'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
                    'Roll': [111, 112, 113, 114, 115]})
print('Given pandas DataFrame:
'
)
print(df)
 
# Change the order of the DataFrame
# Using the reindex() function of pandas DataFrame class
df_4 = df.reindex(columns = ['Roll', 'CGPA', 'Name', 'Branch'])
print('
Pandas DataFrame with changed column order:
'
)
print(df_4)

結果は以下の通りです。

Given pandas DataFrame:
 
  Branch  CGPA    Name  Roll
0    ECE  8.15  Sanjay   111
1    ICE  9.03    Aman   112
2     IT  7.85   Ankit   113
3    CSE  8.55    Ravi   114
4    CHE  9.45   Komal   115
 
Pandas DataFrame with changed column order:
 
   Roll  CGPA    Name Branch
0   111  8.15  Sanjay    ECE
1   112  9.03    Aman    ICE
2   113  7.85   Ankit     IT
3   114  8.55    Ravi    CSE
4   115  9.45   Komal    CHE

まとめ

この記事では、pandas DataFrameオブジェクトのカラムの順序を変更する4つの異なる方法について学びました。

この記事では、pandas DataFrameオブジェクトの列の順番を変更する4つの異なる方法について説明しました。

また、Pythonプログラミングに関するこのような素晴らしいコンテンツをもっと見るために私たちにご期待ください。

タイトルとURLをコピーしました