python - 排名不重复
问题描述
我正在尝试使用 python 对大型数据集进行排名。我不希望重复,而不是使用“第一个”方法,而是希望它查看另一列并根据该值对其进行排名。
如果第一列中的排名有重复,它应该只查看第二列。
Name CountA CountB
Alpha 15 3
Beta 20 52
Delta 20 31
Gamma 45 43
我希望排名最终
Name CountA CountB Rank
Alpha 15 3 4
Beta 20 52 2
Delta 20 31 3
Gamma 45 43 1
目前,我正在使用df.rank(ascending=False, method='first')
解决方案
也许使用排序并拉出索引:
import pandas as pd
df = pd.DataFrame({'Name':['A','B','C','D'],'CountA':[15,20,20,45],'CountB':[3,52,31,43]})
df['rank'] = df.sort_values(['CountA','CountB'],ascending=False).index + 1
Name CountA CountB rank
0 A 15 3 4
1 B 20 52 2
2 C 20 31 3
3 D 45 43 1
推荐阅读
- angular - 我可以将 setTimeout 方法转换为 observable.timer 吗?
- python - 没有规则来制作目标“libpython2.6.a”
- linux - 如何在 linux 服务器上构建 MSI 包?
- apache-spark - 在 S3 中存储时正确的 Parquet 文件大小?
- android - 单击基于离子的图标“线程“主”org.openqa.selenium.WebDriverException中的异常”时出现异常
- r - R中函数内'='和'<-'的范围顺序
- mysql - MySQL 安装程序更新修改 mysqldump 调用
- reactjs - 如何在反应中访问按钮类型mui ListItem的名称
- c++ - 使用 QLinearGradient 绘制 QPushButton
- css - 为什么相同文件名时模块样式重叠