You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python Pandas实现按colA与colB的唯一组合计算colD的平均值

解决按多列分组计算平均值的问题

嘿,这事儿其实超简单,你不用单独折腾df.unique()去处理唯一值,直接把colB也加入到groupby的分组字段列表里就行!

具体操作步骤:

  1. 先正确读取你的CSV文件(注意原始数据是空格分隔,不是逗号,所以要指定分隔符):
import pandas as pd
# 读取空格分隔的CSV文件
df = pd.read_csv('FILE.CSV', sep='\s+')
  1. colA+colB的组合分组,计算colD的平均值:
# 同时指定两个分组列,计算均值后保留列结构
result_df = df.groupby(['colA', 'colB'], as_index=False)['colD'].mean()

也可以用另一种写法,效果完全一样:

result_df = df.groupby(['colA', 'colB'])['colD'].mean().reset_index()

为什么这能解决你的问题?

  • groupby(['colA', 'colB'])会自动识别这两个列的唯一组合(也就是你要的「colA唯一名称+对应colB唯一年份」),每个组合都会被当成独立分组。
  • 对每个分组的colD调用mean(),就能直接算出该组合对应的平均值。
  • as_index=False(或者后续的reset_index())是为了把分组用的colAcolB从索引变回普通列,这样输出格式就和你期望的完全一致了。

最终输出效果

执行完代码后,result_df的内容就是:

colAcolBcolD
FCPP20195
FCPP202015
PSGS201925
PSGS202020

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

火山引擎 最新活动