pandas - 熊猫 | 如何计算具有相同形状的多个数据框中每个单元格的平均值?
问题描述
我有几个这样的 DataFrame:
他们保存在一个列表中 df_list = [df1,df2,df3,df4,df5....]
我想生成一个新的 DataFrame df_average
。
在df_average
中,每个网格等于df1
, df2
, df3
, df4
,的对应网格的平均值df4
。例如:
df_average[1,'Q1'] = 平均值(df1[1,'Q1'],df2[1,'Q1'],df3[1,'Q1'],df4[1,'Q1']),df_average[ 1,'Q2'] = 平均值(df1[1,'Q2'],df2[1,'Q2'],df3[1,'Q2'],df4[1,'Q2'])
如何有效地实现它?
解决方案
您可以使用 pd.concat,然后在索引上使用 groupby,使用 mean 进行聚合。
df1 = pd.DataFrame({'Q1':[1,2,3], 'Q2':[1,7,8], 'Q3':[8,9,1], 'Q4':[4,3,7]})
df2 = pd.DataFrame({'Q1':[7,9,10], 'Q2':[9,2,8], 'Q3':[3,4,2], 'Q4':[1,5,6]})
df_average = pd.concat([df1, df2])
df_average = df_average.groupby(df_average.index).agg({'Q1': 'mean',
'Q2': 'mean',
'Q3': 'mean',
'Q4': 'mean'})
print(df_average)
Q1 Q2 Q3 Q4
0 4.0 5.0 5.5 2.5
1 5.5 4.5 6.5 4.0
2 6.5 8.0 1.5 6.5
推荐阅读
- python-3.x - pythonic方式处理DataError:类型无效输入:'dict'。先转换为字节、字符串、整数或浮点数。?
- azure - 当构建管道中提供相同的任务时,发布管道的目的是什么?
- java - Spring 的 ApplicationEvent 中的源是什么?
- angular - 根据Angular 8中的某些条件隐藏/显示组件的最佳方法是什么
- azure-storage - 使用安全连接批量上传到 Azure 存储
- python - 我正在处理一个不平衡的数据集。应用 SMOTE 算法对少数类进行上采样会产生相同的准确性和 roc_auc_score 吗?
- java - 如何为 Collectors.toMap() 编写合并函数
- mqtt - 为什么高通 9205 iot 调制解调器在进入 PSM 模式之前会断开数据网络连接?
- c++ - c++ 一致性是否使用 decltype 来帮助进行模板推导?
- android - Flutter - 响应较大的 http 请求