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

Pandas动态列分组:优化Col1范围分组求Col2中位数的方案问询

问题:基于Col1动态分组计算Col2中位数的优化方案
  • 现有包含两列浮点值的pandas DataFrame,需基于第一列(Col1)的范围进行分组,通过df.groupby()计算第二列(Col2)的中位数
  • 最初采用等距分箱:当Col1取值范围为20至40时,用np.linspace生成分步为2的分箱,但分组结果样本量分布不均,存在空组(中位数为NaN),信息性较差

原始数据(分组处理前)

索引Col1Col2
021.24
121.82
2274
3276
438.29
536.11
6301
724.110
829.58
9318

等距分箱分组结果

分组中位数Col2值列表
20-223[2,4]
22-24NaN[0]
24-2610[10]
26-285[4,6]
28-308[8]
30-324.5[1,8]
32-34NaN[0]
34-36NaN[0]
36-381[1]
38-409[9]

注:两列呈正相关,预期中位数随分组编号递增,示例数据为随机生成

后续尝试与问题

  • 手动创建numpy对数分箱数组:当Col1取值在1至10000之间时,分箱为1-10、10-100等,样本分布有所改善,但仍存在多个分箱中位数相同的问题(如多个分箱中位数为0,推测对应Col2值均为0)
  • 理想状态:合并中位数相同的3-4个分箱,对数据分布不均的分箱进一步细分;硬编码判断并调整分箱过于繁琐,希望找到更优实现

目标

  • Col1的分组方式合理,同时得到的10个Col2中位数有序且符合数据分布规律
  • 解决当前结果中的NaN值和随机波动问题

提问

是否存在此类现成函数?或有更优的算法方案可以推荐?

PS:若此问题不适用于该论坛,请告知。已检索网络及本平台,未找到相关函数,仅找到基于多列的动态分组方案,但不符合需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:43:09