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

如何将已排序的DataFrame数值按指定分位数断点分配至对应分组?

股票数据分位分组实现方案

前提说明

你当前已完成value列排序,10条数据刚好对应[0,20,40,60,80]的分位断点,每2条数据匹配一个分位区间,直接按排序后的索引分配分组即可。

具体实现代码(Python Pandas环境)

  1. 首先重置排序后数据集的索引(避免原索引干扰分组)
# 假设你排序后的DataFrame名为df_sorted
df_sorted = df_sorted.reset_index(drop=True)
  1. 生成分位组标签
# 每2条为一组,依次分配1-5组
df_sorted['quantile_group'] = (df_sorted.index // 2) + 1

# 如需映射为分位区间文本,可添加如下代码
group_label_map = {
    1: '0-20分位',
    2: '20-40分位',
    3: '40-60分位',
    4: '60-80分位',
    5: '80-100分位'
}
df_sorted['quantile_label'] = df_sorted['quantile_group'].map(group_label_map)

结果校验规则

  • 第1组:排序后第1、2条数据,对应value最小的20%样本
  • 第2组:排序后第3、4条数据,对应20%-40%分位样本
  • 第3组:排序后第5、6条数据,对应40%-60%分位样本
  • 第4组:排序后第7、8条数据,对应60%-80%分位样本
  • 第5组:排序后第9、10条数据,对应value最大的20%样本

注意:如果你当前的排序是降序(value大的在前),会导致分组逻辑反向,建议先执行df_sorted = df.sort_values('value', ascending=True)完成升序排序后再执行上述分组代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:57:04