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

Pandas中按其他列分组用Sales均值填充DataFrame列的方法

Pandas批量实现分类列分组均值填充方案

不需要额外安装第三方工具包,Pandas原生方法就可以直接实现全部分类列的批量分组均值填充,不需要逐列硬编码逻辑。

核心实现逻辑

针对City、Territory、Region、Area4个层级分类列,逐列按自身分组计算Sales字段的平均值,通过transform方法把组均值广播对齐到原表的每一行,直接替换对应分类列的位置即可,全程自动对齐索引,不会出现行错位问题。

可直接运行的代码

# 初始化结果表,保留原始数据不被修改
result_df = df.copy()
# 指定所有需要处理的分类列
category_columns = ["City", "Territory", "Region", "Area"]

for col in category_columns:
    # 按当前列分组计算Sales均值,自动对齐原表行位置赋值
    result_df[col] = df.groupby(col)["Sales"].transform("mean")

注意事项

  • 如果你不需要覆盖原分类列的文本值,想单独保留均值字段,把赋值语句改成result_df[f"{col}_avg_sales"] = df.groupby(col)["Sales"].transform("mean")即可
  • 该写法兼容26行的示例小数据和百万级以上的生产数据,运行效率远高于手动逐组匹配赋值的写法,计算结果可以通过df.groupby(目标列)["Sales"].mean()的输出直接交叉核对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:06:22