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

Pandas分组排序问题:每日销量列的月度销量统计及排名需求

解决方案:按卖家统计月度水果销量

针对你的需求,苹果和甜瓜的每日销量是每个卖家的固定值,直接用sum()会重复累加同一卖家的多行相同值,无法得到预期结果;而草莓需要统计每日实际销量的总和。可以通过以下两种方式实现:

方法一:拆分处理后合并

# 提取苹果、甜瓜的固定日销量(同一卖家值唯一,用first()/last()/max()均可)
fixed_daily_sales = dfFruit.groupby('seller')[['Apples sold every day', 'Melons sold every day']].first()
# 统计草莓的总销量
strawberry_total = dfFruit.groupby('seller')['Strawberries'].sum().rename('Strawberries total')
# 合并结果并整理列名
total_sales = fixed_daily_sales.join(strawberry_total).rename(columns={
    'Apples sold every day': 'Apple sold',
    'Melons sold every day': 'Melon sold'
})
# 按苹果销量降序排序(可替换为其他列,如'Melon sold'或'Strawberries total')
total_sales_sorted = total_sales.sort_values('Apple sold', ascending=False)

方法二:一次性聚合(更简洁)

使用agg()方法对不同列指定不同的聚合规则,一次完成统计:

total_sales = dfFruit.groupby('seller').agg(
    Apple_sold=('Apples sold every day', 'first'),
    Melon_sold=('Melons sold every day', 'first'),
    Strawberries_total=('Strawberries', 'sum')
).sort_values('Apple_sold', ascending=False)

关键说明

  • 苹果和甜瓜的列用first()(或last()/max()/min())是因为同一卖家的所有行值完全一致,取任意一个都能得到正确的固定日销量,避免了sum()导致的重复累加问题。
  • 草莓列用sum()可以正确统计该卖家所有记录的实际售卖总量。

执行上述代码后,你会得到符合预期的统计结果,可根据需求切换排序的列名。

内容的提问来源于stack exchange,提问作者U.K.Owen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:08:22