【发布时间】:2017-10-29 08:36:29
【问题描述】:
我有以下数据框
一个>
Bucket C Count
PL14 XY23081063 706
PL14 XY23326234 15
PL14 XY23081062 1
PL14 XY23143628 1
FZ595 XY23157633 353
FZ595 XY23683174 107
XM274 XY23681818 139
XM274 XY23681819 108
现在我想插入一个新列“Bucket_Rank”,它根据“Count”的降序值在每个“Bucket”下排名“C”
需要的输出: 乙>
Bucket C Count Bucket_Rank
PL14 XY23081063 706 1
PL14 XY23326234 15 2
PL14 XY23081062 1 3
PL14 XY23143628 1 4
FZ595 XY23157633 353 1
FZ595 XY23683174 107 2
XM274 XY23681818 139 1
XM274 XY23681819 108 2
我尝试了以下链接中给出的解决方案
Ranking order per group in Pandas
命令:B["Bucket_Rank"] = A.groupby("Bucket")["Count"].rank("dense", ascending=False)
但它给了我以下错误..
TypeError: rank() got multiple values for argument 'axis'
During handling of the above exception, another exception occurred:
ValueError
帮助赞赏...TIA
【问题讨论】:
-
是的,你需要通过
method='dense'。明确指定每个关键字参数。看我的回答。 -
@cᴏʟᴅsᴘᴇᴇᴅ 谢谢!
标签: python pandas dataframe rank