【问题标题】:Ranking values in pandas based off a condition根据条件对 pandas 中的值进行排名
【发布时间】:2021-03-14 12:42:31
【问题描述】:

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

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 尝试显示一些您已经编写的代码来帮助我们改进它?

标签: python pandas dataframe ranking


【解决方案1】:

使用groupbyrank

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

通过查看文档here,了解哪种排序方法适合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2020-10-27
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多