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

pandas dataframe按多字段分组对指定字段求和的实现方法

解决方案

你遇到的格式不符合问题大多是groupby默认将分组字段转为索引导致的,调整参数即可得到符合要求的结果,完整操作步骤如下:

  • 若你已将原始数据读入为pandas的DataFrame对象df,先确保actual字段为数值类型,避免求和报错:
import pandas as pd
# 转换actual为数值类型,异常值转为空值
df['actual'] = pd.to_numeric(df['actual'], errors='coerce')
  • 分组求和并保持分组字段为普通列,匹配目标表格式:
    默认情况下pd.groupby会把传入的分组字段设为结果的行索引,不会作为普通列逐行输出,加上as_index=False参数即可解决该问题:
# as_index=False 强制分组键保留为普通列,每行会完整展示分组字段取值
result_df = df.groupby(['segment', 'group', 'date'], as_index=False)['actual'].sum()
  • 如果需要显式指定聚合后的字段名(避免出现默认后缀),可改用agg写法:
result_df = df.groupby(['segment', 'group', 'date'], as_index=False).agg(
    actual=('actual', 'sum')
)

执行上述代码后输出的result_df就是你需要的目标结果表格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:03