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

rank
こつこつPython
import pandas as pd
df = pd.DataFrame({'名前': ['apple', 'banana', 'peach', 'cherry', 'blueberry'], 'A店': [120, 150, 210, 110, 230], 
                   'B店': [220, 210, 180, 170, 260], 'C店':[180, 120, 150, 200, 200]})
df

Pythonでデータフレームやシリーズにランク付けをする方法です。
使用するのは、Pythonのpandasライブラリのrankメソッドです。
このようなデータフレームを用意します。

df.rank()

まず、rankの引数に何も指定せずに実行してみましょう。
列ごとにランク付けをすることができました。
デフォルトでは、数値は昇順、文字列はアルファベット順にランク付けされます。
また、同じ値には、平均順位が表示されます。

df.rank(ascending=False)

降順にする場合には、引数にascendingでFalseを指定します。
実行します。
降順でランク付けすることができました。

df.rank(axis=1)

行ごとにランク付けをする場合には、引数にaxis=1を指定します。
実行します。
行ごとにランク付けをすることができました。
行に関しては、要素に文字列が含まれる場合、文字列の要素は除外されます。

df.rank(numeric_only=True)

ただし、列に関しては、文字列の要素を除外する場合には引数で指定する必要があります。
numeric_onlyにNoneを指定して実行してみましょう。
列ごとに、数値の要素のみランク付けを行うことができました。

ser = pd.Series(['apple', 'banana', 'peach', 'cherry', 'grape'])
ser

なお、このようにシリーズでも同様に実行できます。

関連メソッド

【毎日Python】Pandasのデータフレームをカラムで並び替える方法|sort_values

【毎日Python】 Pythonでインデックス名やカラム名に沿って並び替える方法|sort_index

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

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

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

キノクエスト