如何在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
相关产品推荐
相关产品推荐

