我正在处理python中的数据框。
这就是我想要做的。
1. same value gets same rank
2. the next rank should be added as much as the same rank counts
这就是我的意图
首先,我尝试使用rank(method =“ dense”)函数。但是它没有按我预期的那样工作。
df_sales [“ rank”] = df_sales [“ price”]。rank(升序= False,方法=“ dense”)
谢谢。
答案 0 :(得分:0)
您需要使用method='min'
和ascending=False
:
df = pd.DataFrame({'x':[5300,5300,5300,5200,5200, 5100]})
df['r'] = df['x'].rank(method='min', ascending=False)
方法:{“平均值”,“最小”,“最大”,“第一”,“密集”}
average: average rank of group min: lowest rank in group max: highest rank in group first: ranks assigned in order they appear in the array dense: like ‘min’, but rank always increases by 1 between groups
请注意,dense
在组中的排名特别提高了1。您需要min
选项。