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

如何在Python中按两列分组并计算分类计数平均值?

修正方案与实现步骤

原代码存在的问题

  • groupby处理多列分组时,参数需放入列表中,原写法groupby('CONTAINER', 'DATE')会触发语法错误,正确格式应为groupby(['CONTAINER', 'DATE'])
  • agg方法的字典参数中,重复使用'CLOUDS'作为键会导致后一个值覆盖前一个,且此处需求是统计分组记录数,而非对CLOUDS列求均值

正确实现代码

分步实现(更清晰)

# 按CONTAINER和DATE分组,统计每组的记录数量
group_counts = df.groupby(['CONTAINER', 'DATE']).size().reset_index(name='COUNT')

# 计算所有分组计数的平均值
avg_count = group_counts['COUNT'].mean()

# 按需求格式输出结果
print(f"AVG CLOUDS PER CONTAINER: ~{avg_count:.3f}")

合并简化写法

avg_count = df.groupby(['CONTAINER', 'DATE']).size().mean()
print(f"AVG CLOUDS PER CONTAINER: ~{avg_count:.3f}")

逻辑说明

  1. groupby(['CONTAINER', 'DATE']).size()会生成每个(容器,日期)组合的记录数序列,对应结果为[3,4,3,2]
  2. 对该序列求均值,即(3+4+3+2)/4 = 3.333,正好符合预期输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:15:35