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

Pandas pivot_table数值类型异常与求和结果错误的解决求助

解决Pivot Table中Qtd列求和异常的问题

首先,你遇到的这个问题核心原因很明确:pivot_table默认的聚合函数是均值(mean),而不是你需要的求和(sum)!这就是为什么会出现6.25这种非整数结果——它是同一价格下Vendedor对应的Qtd值的平均值,而非总和。

修正方法

只需要在pivot_table里显式指定aggfunc='sum'参数,就能得到正确的Qtd总和:

df.between_time('09:00', '09:05').head(10).pivot_table(
    index='Preço', 
    columns='Agr', 
    values='Qtd',
    aggfunc='sum'  # 关键:指定求和作为聚合方式
)

为什么会出现这种情况?

默认情况下,Pandas的pivot_table会对重复的分组(比如同一个Preço+Agr组合)计算平均值。看你提供的原始数据:

  • Preço=4073.5对应Agr=Vendedor有3条记录,Qtd分别是5、5、5,总和15,均值就是5
  • Preço=4074.0对应Agr=Vendedor有4条记录,Qtd是10、5、5、5,总和25,均值就是25/4=6.25

这就是奇怪数值的来源,完全是默认聚合逻辑导致的。

额外优化

如果需要确保结果是整数类型,可以加上fill_value=0处理空值,再用astype(int)转换类型:

result = df.between_time('09:00', '09:05').head(10).pivot_table(
    index='Preço', 
    columns='Agr', 
    values='Qtd',
    aggfunc='sum',
    fill_value=0
).astype(int)

这样得到的结果就全是整数,且完全符合实际的Qtd总和需求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 10:04:07