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

Pandas按国家分组计算分数列条件百分位排名的高效实现方法问询

实现分组百分位排名的高效方案

直接使用pandas原生的分组排名逻辑即可,属于矢量化操作,即使国家数量很多也能保持极高的执行效率,无需手动循环或逐个筛选国家处理。

实现代码

import pandas as pd

columns=['Country','Score']
data=[('US',5),('US',3),('US',12),('US',7),('US',47),('US',87),('US',97),
('US',55),('Brazil',15),('Brazil',32),('Brazil',62),('Brazil',71),
('Brazil',7), ('Brazil',57),('Brazil',45),('Brazil',57)]

df=pd.DataFrame(columns=columns,data=data)
# 按国家分组后直接在组内计算百分位排名,结果会自动和原表索引对齐
df['Country_Rank'] = df.groupby('Country')['Score'].rank(pct=True)

可选排名规则调整

可以通过修改rank方法的method参数适配不同的并列值处理逻辑:

  • method='average':默认规则,相同分数的样本取平均排名
  • method='min':相同分数的样本取该组的最小排名
  • method='max':相同分数的样本取该组的最大排名
  • method='first':相同分数的样本按出现先后顺序排名,无重复排名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:57:02