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

Pandas按zone、keyword分组后对sales求和并按结果降序排列的方法

实现代码

你需要先保证分组时保留原数据中zone的出现顺序,再对同一个zone下的行按sales降序做组内排序即可,完整代码如下:

# 第一步:按zone+keyword分组求和,保留zone在原数据中的出现顺序,不自动对分组键排序
df_sum = df_sales.groupby(['zone','keyword'], sort=False)['sales'].sum().reset_index()
# 第二步:按zone分组,组内按sales降序排列,不改变zone之间的原有顺序
df_res = df_sum.groupby('zone', sort=False, group_keys=False).apply(
    lambda x: x.sort_values('sales', ascending=False)
).reset_index(drop=True)

原理解释

  1. 你之前直接对全表执行sort_values会打乱zone的原有分组顺序,本质是排序维度是全表所有行,而非组内排序
  2. groupby时添加sort=False参数,会严格按照分组字段在原数据中首次出现的顺序生成分组,不会默认按字段值升序排列,保证zone的顺序符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:54:04