根据条件对 pandas 中的值进行排名

Ranking values in pandas based off a condition

我是 python 的新手。我有一个看起来像这样的数据框:

Points   Year_Month 
5000     March-2021
4000     March-2021
3500     March-2021
4500     February-2021
2000     February-2021
1500     February-2021
6000     January-2021
1200     January-2021
1000     January-2021

我想创建一个新列,根据 'Year_Month' 列对 'Points' 列进行排名。 所以我想要的输出看起来像下面这样:

Points   Year_Month     Rank  
5000     March-2021     1
4000     March-2021     2
3500     March-2021     3
4500     February-2021  1
2000     February-2021  2
1500     February-2021  3
6000     January-2021   1
1200     January-2021   2
1000     January-2021   3

如有任何帮助,我们将不胜感激。谢谢

使用groupbyrank

df['rank'] = df.groupby(['Year_Month'])['Points'].rank(method='first', ascending=False)

看文档看什么样的rank方法合适here