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

如何在Pandas中计算多个同表头DataFrame的列均值?

计算多个同表头DataFrame对应列的均值

我有三个(或更多)表头完全相同的DataFrame,具体定义如下:

import pandas as pd
df1 = pd.DataFrame({
    's1': [230, 345, 222],
    's2': [235, 375, 292],
    's3': [210, 385, 260],
    's4': [10, 315, 120],
    's5': [110, 138, 560]
})
df2 = pd.DataFrame({
    's1': [130, 325, 232],
    's2': [218, 354, 234],
    's3': [217, 185, 340],
    's4': [180, 364, 450],
    's5': [140, 148, 120]
})
df3 = pd.DataFrame({
    's1': [30, 315, 542],
    's2': [235, 315, 22],
    's3': [216, 35, 260],
    's4': [910, 209, 720],
    's5': [11, 178, 360]
})

需要计算这些DataFrame中对应表头列的均值,期望结果如下:

mean = pd.DataFrame({
    's1': [130, 328.33, 332],
    's2': [229.3, 348, 182.67],
    's3': [214.3, 201.67, 286.67],
    's4': [366.67, 296, 430],
    's5': [87, 154.67, 346.67]
})

解决方案

直接通过pd.concat合并所有DataFrame,按原始行索引分组计算均值并保留两位小数:

# 收集所有DataFrame到列表
dfs = [df1, df2, df3]
# 合并后分组求均值
mean_df = pd.concat(dfs).groupby(level=0).mean().round(2)

# 输出结果
print(mean_df)

运行结果:

s1      s2      s3      s4      s5
0  130.00  229.33  214.33  366.67   87.00
1  328.33  348.00  201.67  296.00  154.67
2  332.00  182.67  286.67  430.00  346.67

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:57:37