You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame中对字段进行稠密排名,使最大值对应排名1?

解决Pandas DataFrame稠密排名问题

你当前的代码没得到预期结果,是因为rank()方法默认使用method='average'——当数据里存在重复值时,会对重复值的排名取平均值,这就导致最大值的排名不是1而是402.50。

要实现你需要的稠密排名(最大值排1,相同数值同排名,后续排名连续递增),只需在rank()里显式指定method='dense'参数,同时保留ascending=False:

df['DenseRank'] = df['CountsOfCircuits'].rank(ascending=False, method='dense')

简单解释下几个常用的method参数区别:

  • 'average':默认行为,重复值取平均排名
  • 'dense':稠密排名,相同值共享同一排名,下一个不同值排名直接+1
  • 'min':重复值取它们的最小排名
  • 'max':重复值取它们的最大排名

内容的提问来源于stack exchange,提问作者ASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:30:51