PandasのDataFrameでランク付けする方法


  1. 単一の列を基準にランク付けする方法: DataFrameの特定の列に基づいてデータをランク付けするには、rank()メソッドを使用します。例えば、以下のコードは"score"列を基準にデータをランク付けします。
import pandas as pd
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'Score': [85, 92, 78, 90]})
df['Rank'] = df['Score'].rank(ascending=False)

このコードでは、"Score"列の値に基づいてデータがランク付けされ、"Rank"列にランクが追加されます。rank()メソッドの引数ascending=Falseは降順でのランク付けを指定しています。

  1. 複数の列を基準にランク付けする方法: 複数の列を基準にデータをランク付けする場合は、sort_values()メソッドと組み合わせて使用することができます。以下のコードでは、"score"列を優先し、同じ値の場合は"name"列に基づいてデータをランク付けしています。
df = df.sort_values(['Score', 'Name'], ascending=[False, True])
df['Rank'] = df.reset_index().index + 1

このコードでは、sort_values()メソッドで"Score"列と"Name"列に基づいてデータをソートし、reset_index()メソッドでインデックスをリセットします。最後に、インデックスに1を加えることでランクを計算し、"Rank"列に追加します。

これらはPandasのDataFrameでデータをランク付けするための一般的な方法です。他にも様々なオプションやパラメータがありますので、公式ドキュメントやオンラインのリソースを参考にして詳細を学ぶことをおすすめします。