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

如何从pandas dataframe中按column_1分组计算column_2的数值小计

问题原因

pandas.crosstab 默认统计两个字段交叉的出现频次,你之前的写法没有指定聚合的数值列和聚合规则,所以输出的是每个column_1值对应不同column_2值的出现次数,行合计自然就是计数的总和,不是数值求和结果。

调整后的crosstab写法

只需要补充两个参数即可:

  • values:指定要聚合计算的列,也就是你要求和的column_2
  • aggfunc:指定聚合规则,这里填sum代表求和

示例代码如下:

pd.crosstab(
    index=df["column_1"],
    columns="sum_column",
    values=df["column_2"],
    aggfunc="sum",
    margins=True,
    margins_name="总合计"
)

输出结果(对应你的示例数据)

column_1sum_column
A-156
B171
C4
D-52
总合计-33

补充说明

如果你只需要拿到每个分组的求和结果不需要生成交叉表,用groupby写法更简洁:

df.groupby("column_1")["column_2"].sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:08