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

如何用Python按位置计算多个Excel文件的逐行逐列均值

解决方案:批量计算多Excel文件的逐行逐列均值

核心思路

你需要的是不同文件中同一行号、同一列位置的数值均值,而非单个文件内的行/列均值或所有数据的整体均值。关键是先把所有Excel文件的数据按行索引、列名对齐,再对每个位置的数值计算跨文件的均值。

实现代码

import pandas as pd
import os

# 1. 设置文件夹路径(替换为你的文件夹路径)
folder_path = "你的Excel文件所在文件夹路径"

# 2. 获取文件夹中所有Excel文件的路径
excel_files = [f for f in os.listdir(folder_path) if f.endswith(('.xlsx', '.xls'))]

# 3. 读取所有文件并存储为列表,保留原始行索引(确保行号对应)
df_list = []
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    # 读取时不设置表头,用默认列名(如0,1,...,99),保留原始行索引(0对应第1行,10对应第11行)
    df = pd.read_excel(file_path, header=None, index_col=None)
    df_list.append(df)

# 4. 合并所有数据框,按行索引和列对齐,计算跨文件的均值
# concat会自动对齐行和列,缺失的行/列填充NaN,mean时忽略NaN
mean_df = pd.concat(df_list).groupby(level=0).mean()

# 5. 将结果保存为新Excel文件
mean_df.to_excel("逐行逐列均值结果.xlsx", header=None, index=False)

关键说明

  • read_excel用header=None是为了按列位置(A列对应0,B列对应1...)计算,避免不同文件表头不一致导致对齐错误;index_col=None保留原始行索引,确保第11行对应索引10(注意:pandas索引从0开始,所以A11对应索引10)。
  • pd.concat(df_list)会把所有数据框堆叠,groupby(level=0)按行索引分组,mean()计算每组(即同一行号)各列的跨文件均值,自动忽略缺失行的NaN值。
  • 如果你的Excel文件有统一表头,可以去掉header=None,改用index_col=None,这样会按列名对齐计算均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:14