この記事では、与えられた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 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 ( ' )
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 ( ' )
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 ( ' )
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つのメソッド loc
と iloc
では、与えられた pandas DataFrame オブジェクトの行の範囲のみを選択することができるという利点が追加されています。
この記事もチェック:Pandasのilocメソッドの使い方|列の抽出や複数列の扱い方を解説
方法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 ( ' )
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プログラミングに関するこのような素晴らしいコンテンツをもっと見るために私たちにご期待ください。