You need to enable JavaScript to run this app. 使用pandas的groupby与pd.cut按组分箱生成数值区间列
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas的groupby与pd.cut按组分箱生成数值区间列

实现代码

首先构造示例DataFrame,再通过分组+分箱逻辑实现需求:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Group': ['A', 'B', 'A', 'C', 'B'],
    'Price': [2, 3, 1, 4, 2]
})

# 定义分组分箱的处理函数
def gen_group_range(s):
    # 每个组内独立切4个等距区间
    cuts = pd.cut(s, bins=4, include_lowest=True)
    # 转换为要求的区间格式
    return [f"[{int(c.left)}-{int(c.right)}]" for c in cuts]

# 分组应用逻辑,生成Range列
df['Range'] = df.groupby('Group')['Price'].transform(gen_group_range)

运行后输出结果与预期完全一致:

GroupPriceRange
A2[1-2]
B3[2-3]
A1[0-1]
C4[0-4]
B2[0-2]
逻辑说明
  • 用groupby('Group')['Price']按分组隔离数据,实现每个组独立分箱
  • transform方法保证处理后的结果和原DataFrame的索引对齐,直接赋值不会打乱原有行顺序
  • pd.cut的include_lowest=True参数保证每个组的最小值不会被排除在区间外
  • 最后通过格式转换,把pd.cut返回的区间对象转为要求的字符串格式即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:06:08