python - 根据条件对 pandas 中的值进行排名
问题描述
我对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
任何帮助将非常感激。谢谢
解决方案
使用groupby
和rank
df['rank'] = df.groupby(['Year_Month'])['Points'].rank(method='first', ascending=False)
通过查看此处的文档,了解哪种排名方法适合。
推荐阅读
- anaconda - 更新 Anaconda 失败:环境不可写错误
- python - 无法在 MouseClick 上将 MapCircles 添加到 QML 地图
- prolog - 没有比较运算符的相等参数
- python - 如何确保加载属于 PCA 中的变量
- java - 加载 rds-combined-ca-bundle.pem。来自 AWS lambda java 中的资源文件夹
- google-drive-api - 无法使用服务帐户下载由其他非服务帐户上传的文件的文件
- java - 尝试从 JavaFX 中的 Controller 类动态打开新的 FXML 文件会出错
- tomcat - 如何在 NetBeans 中创建开发和生产版本?
- swift - MKMapView MKTileOverlay 擦除 MKPolyline 层
- python - Python 到 Arduino 串行通信产生半随机结果