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

Python pandas十分位分组后按5分递增规则赋值分数方法

实现方法

你当前调用pd.qcut时传入labels=False,生成的decile列是取值为0~9的整数,其中0对应最低十分位、9对应最高十分位,和你要求的赋分规则完全匹配,直接做简单算术运算即可完成赋值:

# 基于已生成的decile列计算分数
df['score'] = (df['decile'] + 1) * 5

运算后最低十分位(decile=0)得分为(0+1)*5=5,最高十分位(decile=9)得分为(9+1)*5=50,每档刚好递增5分,完全符合规则要求。


如果你不需要保留中间的decile分位列,也可以在分箱时直接传入自定义标签一步完成,不需要后续计算:

# 直接生成分数列,无需单独创建decile列
df['score'] = pd.qcut(
    df['column'], 
    q=10, 
    labels=[5,10,15,20,25,30,35,40,45,50]
)

注意事项

  • pd.qcut默认按列值从小到大排序分箱,和你“值越低所属分位越低、赋分越低”的逻辑完全一致,不需要额外调整排序规则
  • 如果真实数据存在大量重复值导致分箱边界冲突,可以在qcut中加入参数duplicates='drop'避免运行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:36:17