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

问题描述

我对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)

通过查看文档 here 看看什么样的排名方法是合适的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...