この記事では、与えられたpandas DataFrameオブジェクトの列の順序を変更する方法について説明します。
データ前処理の段階で、pandas DataFrameの列が希望する順番になっていない状況に遭遇することがあります。
その場合、DataFrameの列の順番を変更する必要があります。
こちらもご覧ください。
Pandas DataFrameのインデックス作成。
この記事もチェック:Pandas DataFrameの単一カラムの名前を変更する
Pandas Dataframe のカラムの順番を変更するには?
それでは早速、Pandasでデータフレームの列順を変更するための様々な方法を紹介します。
この記事もチェック:Pandasのデータフレームに行を追加する5つの簡単な方法
方法1:希望する順序の列リストを使用する
これは、pandas DataFrameオブジェクトのカラムの順序を変更する最も簡単な方法の一つです。
この方法では、DataFrameのカラムのPythonリストを希望する順序でDataFrameオブジェクトに渡すだけです。
それでは、このメソッドをPythonでどのようにコーディングするか見てみましょう。
# Method-1# Import pandas Python moduleimport pandas as pd
# Create a pandas DataFramedf = 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 listdf_1 = df[['Name', 'CGPA', 'Roll', 'Branch']]
print(')
print(df_1)
|
結果は以下の通りです。
Given pandas DataFrame: Roll Name Branch CGPA
0 111 Sanjay ECE 8.151 112 Aman ICE 9.032 113 Ankit IT 7.853 114 Ravi CSE 8.554 115 Komal CHE 9.45Pandas DataFrame with changed column order: Name CGPA Roll Branch
0 Sanjay 8.15 111 ECE1 Aman 9.03 112 ICE2 Ankit 7.85 113 IT3 Ravi 8.55 114 CSE4 Komal 9.45 115 CHE |
方法2:loc メソッドを利用する
このメソッドでは、pandas DataFrame クラスの loc メソッドを使用します。
loc` メソッドを使うと、Pythonのカラム名のリストを提供することで、pandas DataFrame オブジェクトのカラムを並べ替えることができます。
このメソッドを実装するための Python コードを書いてみましょう。
# Method-2# Import pandas Python moduleimport pandas as pd
# Create a pandas DataFramedf = 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 classdf_2 = df.loc[2:4, ['Roll', 'Name', 'CGPA', 'Branch']]
print(')
print(df_2)
|
結果は以下の通りです。
結果は以下の通りです。
Given pandas DataFrame: Name Roll Branch CGPA
0 Sanjay 111 ECE 8.151 Aman 112 ICE 9.032 Ankit 113 IT 7.853 Ravi 114 CSE 8.554 Komal 115 CHE 9.45Pandas DataFrame with changed column order: Roll Name CGPA Branch
2 113 Ankit 7.85 IT3 114 Ravi 8.55 CSE4 115 Komal 9.45 CHE |
方法3:iloc メソッドを使用する
このメソッドでは、pandas DataFrameクラスの iloc メソッドを使用します。
iloc`メソッドを使用すると、列名の代わりに列インデックス(0, 1, 2, 3, …)のPythonリストを提供することで、pandas DataFrameオブジェクトの列を並べ替えることができます。
この方法をPythonのコードで実装する方法を見てみましょう。
# Method-3# Import pandas Python moduleimport pandas as pd
# Create a pandas DataFramedf = 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 classdf_3 = df.iloc[1:4, [1, 2, 0, 3]]
print(')
print(df_3)
|
結果を出力すると、以下の様になります。
Given pandas DataFrame: CGPA Name Roll Branch
0 8.15 Sanjay 111 ECE1 9.03 Aman 112 ICE2 7.85 Ankit 113 IT3 8.55 Ravi 114 CSE4 9.45 Komal 115 CHEPandas DataFrame with changed column order: Name Roll CGPA Branch
1 Aman 112 9.03 ICE2 Ankit 113 7.85 IT3 Ravi 114 8.55 CSE |
注意: 上記の2つのメソッド loc と iloc では、与えられた pandas DataFrame オブジェクトの行の範囲のみを選択することができるという利点が追加されています。
この記事もチェック:Pandasのilocメソッドの使い方|列の抽出や複数列の扱い方を解説
方法4:reindex()関数を使用する
このメソッドでは、pandas DataFrame オブジェクトの reindex() 関数を使用します。
reindex()`関数を使うと、Pythonのカラム名のリストを渡すことで、pandas DataFrameオブジェクトのカラムの順番を並べ替えることができます。
このメソッドを Python コードで実装してみましょう。
# Method-4# Import pandas Python moduleimport pandas as pd
# Create a pandas DataFramedf = 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 classdf_4 = df.reindex(columns = ['Roll', 'CGPA', 'Name', 'Branch'])
print(')
print(df_4)
|
結果は以下の通りです。
Given pandas DataFrame: Branch CGPA Name Roll
0 ECE 8.15 Sanjay 1111 ICE 9.03 Aman 1122 IT 7.85 Ankit 1133 CSE 8.55 Ravi 1144 CHE 9.45 Komal 115Pandas DataFrame with changed column order: Roll CGPA Name Branch
0 111 8.15 Sanjay ECE1 112 9.03 Aman ICE2 113 7.85 Ankit IT3 114 8.55 Ravi CSE4 115 9.45 Komal CHE |
まとめ
この記事では、pandas DataFrameオブジェクトのカラムの順序を変更する4つの異なる方法について学びました。
この記事では、pandas DataFrameオブジェクトの列の順番を変更する4つの異なる方法について説明しました。
また、Pythonプログラミングに関するこのような素晴らしいコンテンツをもっと見るために私たちにご期待ください。