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

Pandas 如何对DataFrame中多份同结构表的对应单元格求平均值

解决方法

步骤1:拆分原始DataFrame,提取所有独立子表

你读取到的大表中包含分隔用的全NaN行、重复的子表表头,首先先做数据清洗拆分:

import pandas as pd

# 第一步:删除所有全为NaN的分隔行
df_clean = df.dropna(how='all').reset_index(drop=True)

# 识别所有子表的表头行(特征是行值正好匹配[1,2,3,4])
header_indexes = df_clean[df_clean.eq([1,2,3,4]).all(axis=1)].index.tolist()
# 补充末尾边界索引
header_indexes.append(len(df_clean))

# 提取所有子表存入列表
sub_tables = []
for idx in range(len(header_indexes)-1):
    # 取表头行之后到下一个表头行之前的内容作为子表
    sub_df = df_clean.iloc[header_indexes[idx]+1 : header_indexes[idx+1]].reset_index(drop=True)
    # 统一子表列名
    sub_df.columns = [1,2,3,4]
    sub_tables.append(sub_df)

步骤2:对应位置计算平均值

不需要手动遍历行列,直接拼接所有子表后按行索引分组求均值即可:

# 拼接所有子表,保留各自的原始行索引
all_data = pd.concat(sub_tables, keys=range(len(sub_tables)))
# 按原始行索引(第二级索引)分组,对每列求均值
result = all_data.groupby(level=1).mean()

运行后输出的result就是你需要的汇总平均表,和你给出的期望输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:36:05