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

Pandas按州Group by聚合统计销量与销售额结果一致问题咨询

问题原因

你两类统计的代码逻辑本质都是统计每个州的订单条目数(即销售商品件数),所以结果完全一致:

  • 按商品件数统计的df["State"].value_counts()逻辑正确,统计每个州的销售记录行数,对应销售商品总件数
  • 你写的按销售额统计代码误用了count()聚合函数:df.groupby("State", as_index=False)["Sales"].count()的作用是统计每个州Sales列的非空值数量,本质还是统计行数,和value_counts的计算逻辑完全一致,并没有对销售金额做求和计算。另外你代码里的df.groupby(["Customer ID","State"])["Sales"].sum()是按客户+州维度统计单个客户的消费总额,和你需要的州维度总销售额无关,可以直接删除。

修正后代码

import pandas as pd

# 加载数据
df = pd.read_csv('https://raw.githubusercontent.com/michalis0/DataMining_and_MachineLearning/master/data/sales.csv')

# 1. 按销售商品件数统计Top50州
count_rank = df["State"].value_counts().head(50)
print("按商品件数销量Top50州:")
print(count_rank)

# 2. 按销售总金额统计Top50州,用sum()做求和聚合
amount_rank = df.groupby("State", as_index=False)["Sales"].sum()
amount_rank.sort_values(by="Sales", ascending=False, inplace=True)
print("\n按销售金额Top50州:")
print(amount_rank.head(50))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:24:07