【毎日Python】Pythonでデータフレームの行列を並び替えや抽出する方法|reindex

reindex
毎日Python/こつこつPython
import pandas as pd
df = pd.DataFrame({'apple': [100, 200, 300], 'banana': [150, 250, 350], 'orange': [400, 450, 500]},
                  index=['A', 'B', 'C'])
df

データフレームの行と列を並び替える方法です。
使用するのは、Pythonのpandasライブラリのreindexメソッドです。
このようなデータフレームを用意します。

df.reindex(index=['C', 'A', 'B'])

まず、行の順番を並び替えてみましょう。
indexで、並び替えたい順番をリストで指定して実行します。
指定した順番に並び替えることができました。

df.reindex(columns=['banana', 'orange', 'apple'])

次に列の順番を並び替えてみましょう。
columnsで、並び替えたい順番をリストで指定して実行します。
指定した順番に並び替えることができました。

df.reindex(index=['B', 'A', 'C'], columns=['orange', 'banana', 'apple'])

また、行と列を同時に並び替えることもできます。
実行します。
指定した順番で並び替えることができました。

df.reindex(index=['B','A','D'], columns=['orange','apple','grape'])
#df.reindex(index=['B', 'C'], columns=['orange', 'banana'])

指定の行と列のみを抽出したり、追加したりすることもできます。
行はAとB、列はorangeとappleと抽出して、同時にDの行とgrapeの列を追加します。
実行します。
行と列の抽出と、追加を行うことができました。
なお、追加されたデータはデフォルトで欠損値が表示されます。

df.reindex(index=['B','A','D'], columns=['orange','apple','grape'],fill_value=1000)

なお、追加される値は、デフォルトでは欠損値です。
任意の値で追加する場合には、引数にfill_valueで任意の値を指定します。
実行します。
指定した値で行と列を追加することができました。

関連メソッド

【毎日Python】Pandasのデータフレームで既存のカラムをインデックスに指定する方法|set_index

【毎日Python】Pythonでデータフレームの要素にランク付けする方法|DataFrame.rank