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

为何Pandas groupby()未正确展示按产品分组的总销售额?

问题原因与解决方法

为什么输出的是SeriesGroupBy对象?

df.groupby("product")["sales"]只完成了数据分组的操作:它把原DataFrame按照product列的不同值分成了对应的组,但并没有对每组的sales数据执行任何计算。返回的SeriesGroupBy对象本质是一个"待计算的分组容器",不是最终的聚合结果,所以打印时只会输出对象的内存引用信息。

正确的实现方式

要得到各产品的总销售额,需要在分组对象后调用聚合方法,比如sum(),让Pandas对每组的sales列求和:

import pandas as pd

df = pd.DataFrame({
    "product": ["apple", "banana", "apple", "orange", "banana"],
    "quantity": [2, 3, 1, 5, 2],
    "price": [3, 2, 3, 4, 2]
})

df["sales"] = df["quantity"] * df["price"]

# 调用sum()完成分组求和
result = df.groupby("product")["sales"].sum()

print(result)

运行结果

执行后会得到你预期的输出:

product
apple      9
banana    10
orange    20
Name: sales, dtype: int64

额外说明:除了sum(),你还可以根据需求调用其他聚合方法,比如mean()(求平均值)、max()(求最大值)等,来完成不同的分组计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 00:12:27