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

Pandas使用cut分箱后如何将区间替换为同箱数据的均值或中位数

解决方法

你可以直接使用pandas的groupby+transform组合实现需求,核心逻辑是按分箱后的B列分组,计算每组内A列的均值/中位数后,映射回原数据的对应行。

完整可运行代码

import pandas as pd

# 生成初始DataFrame
df = pd.DataFrame({'A':[10, 15, 12, 19, 11, 20, 25]})
# 等宽分箱得到区间列B
df['B'] = pd.cut(df['A'], bins = 2)

# 方案1:将B替换为对应分箱内A列的均值(保留2位小数,和你示例结果一致)
df['B'] = df.groupby('B')['A'].transform('mean').round(2)

# 方案2:如果要替换为分箱内A列的中位数,改用下面的代码即可
# df['B'] = df.groupby('B')['A'].transform('median')

print(df)

输出结果(方案1)

A      B
0  10  12.00
1  15  12.00
2  12  12.00
3  19  21.33
4  11  12.00
5  20  21.33
6  25  21.33

如果不需要保留小数位,可以去掉round(2)方法,或者根据需求调整保留位数。


内容的提问来源于stack exchange,提问作者Javad.Rad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:06:04