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

如何在pandas DataFrame中按多列组合条件计算分组平均值

你需要的功能可以通过 pandas 分组聚合功能直接实现,将col1、col2同时设为分组键计算value列均值即可,具体代码如下:

# 1. 先导入pandas(如果未导入的话执行这行)
import pandas as pd

# 你的示例数据集构造代码
test1 = {'col1' : ["A","A","A","A","B","B","B","B"],
         'col2' : ["C","D","C","D","C","D","C","D"],
         'year' :["2012","2012","2013","2013","2012","2012","2013","2013"],
         'value' : [3,4,25,1,3,2,1,3]}
df_t = pd.DataFrame(data=test1)

# 2. 分组计算均值,生成要求的结果表
result_df = df_t.groupby(['col1', 'col2'], as_index=False)['value'].mean().rename(columns={'value': 'mean_value'})

# 查看输出结果
print(result_df)

运行后输出的结果如下:

col1 col2  mean_value
0    A    C        14.0
1    A    D         2.5
2    B    C         2.0
3    B    D         2.5

代码说明

  • groupby(['col1', 'col2']) 表示将两列作为绑定组合进行分组,满足你对不同col1+col2组合分别计算的要求
  • as_index=False 表示分组后的col1、col2保留为普通数据列,不会被转为索引
  • rename(columns={'value': 'mean_value'}) 是将计算得到的均值列重命名为你要求的mean_value
  • 如果需要对均值做精度控制,可以在mean()后追加.round(小数位数),比如保留1位小数写为mean().round(1)

内容的提问来源于stack exchange,提问作者Jeong In Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:27:04