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

按ColA分组计算ColB值与组内ColB中位数比值并生成新列的实现方法

实现方案
  • 核心用Pandas的groupby+transform组合实现,transform会把分组聚合得到的中位数,自动匹配到对应分组的每一行,不用额外做表关联
  • 用原ColB列的值除以对应分组的中位数,保留两位小数即可得到新列ColC
可直接运行的代码
import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'ColA': ['grp1', 'grp1', 'grp1', 'grp1', 'grp2', 'grp2', 'grp2', 'grp2', 'grp3', 'grp3', 'grp3', 'grp3'],
    'ColB': [2, 10, 8, 22, 6, 14, 12, 32, 10, 20, 30, 6]
})

# 核心计算逻辑
df['ColC'] = (df['ColB'] / df.groupby('ColA')['ColB'].transform('median')).round(2)

# 打印输出结果
print(df)
结果说明

代码自动计算的分组中位数和给定数值完全一致:grp1中位数9.0、grp2中位数13.0、grp3中位数15.0,最终输出的ColC比值精度也和预期输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:07