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

基于Project_ID和ANIMALS(仅CATS)对Quantity列求和的Pandas问题

问题解决:针对指定类别对DataFrame列求和

原代码问题分析

  • 未先过滤ANIMALS列的CATS类别,会错误统计所有动物类型的数据
  • groupby后使用lambda x: x.drop_duplicates(...)完全多余:分组后每组内的PROJECT_ID和ANIMALS值是唯一的,无需去重;且agg中传入的x是分组后的QUANTITY列(Series类型),根本没有PROJECT_ID和ANIMALS列,会触发KeyError

正确实现步骤

  1. 过滤目标类别:先筛选出ANIMALS为CATS的行
  2. 分组求和:按PROJECT_ID和ANIMALS分组,直接对QUANTITY列求和
  3. 格式整理:将分组结果转为常规DataFrame结构

完整代码

# 1. 筛选仅包含CATS的行
filtered_df = df[df['ANIMALS'] == 'CATS']

# 2. 按指定列分组并对QUANTITY求和,同时重置索引
new_df = filtered_df.groupby(['PROJECT_ID', 'ANIMALS'])['QUANTITY'].sum().reset_index()

# 查看结果
new_df.tail(50)

补充说明

  • 如果不需要在结果中保留ANIMALS列(因为已经都是CATS),可以简化分组逻辑:filtered_df.groupby('PROJECT_ID')['QUANTITY'].sum().reset_index()
  • reset_index()的作用是将分组后的索引转为普通列,让结果更符合常规DataFrame的使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:22:06