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

reindex
こつこつ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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト