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

如何用Pandas批量处理目录下Excel文件并合并?

批量处理Excel文件并合并的解决方案

1. 封装处理逻辑为函数

先把你对单个Excel的处理步骤封装成函数,方便批量复用:

import pandas as pd
import glob

def process_single_excel(file_path):
    # 读取Excel文件,根据实际情况调整sheet_name、header等参数
    df = pd.read_excel(file_path)
    
    # 执行你的核心处理步骤
    df = df.T
    df.columns = df.iloc[0]
    df = df.loc[3:8]
    # 注意:多列选取需要双层方括号,原代码写法会报错
    df = df[['col2', 'col8', 'col10']]
    # 重置索引避免合并后索引混乱
    df = df.reset_index(drop=True)
    
    return df

2. 批量获取目标文件路径

用glob精准匹配目录下的所有Excel文件,替换成你的实际目录路径和文件后缀:

# 匹配指定目录下的所有xlsx文件,如需匹配xls则改成*.xls
file_paths = glob.glob('./your_target_folder/*.xlsx')

可以先打印len(file_paths)确认是否获取到了所有文件,避免路径写错导致空列表。

3. 批量处理并收集结果

遍历所有文件,调用处理函数,把成功处理后的DataFrame存入列表:

processed_dataframes = []

for path in file_paths:
    try:
        processed_df = process_single_excel(path)
        processed_dataframes.append(processed_df)
        print(f"已处理:{path}")
    except Exception as e:
        # 捕获错误并跳过异常文件,避免整个流程中断
        print(f"处理文件{path}失败:{str(e)}")
        continue

4. 合并所有结果

用pd.concat替代已弃用的append方法,高效合并所有DataFrame:

# ignore_index=True 重置合并后的索引,避免重复索引问题
final_merged_df = pd.concat(processed_dataframes, ignore_index=True)

# 将合并结果保存为Excel文件
final_merged_df.to_excel('./merged_final_result.xlsx', index=False)

注意事项

  • 如果你的Excel文件有指定工作表,记得在pd.read_excel中添加sheet_name参数(比如sheet_name='Sheet1')
  • 若存在文件损坏、列名不一致等情况,可在try-except块中添加更细致的错误处理(比如记录错误日志)
  • 针对数千个文件的场景,pd.concat的效率远高于循环append,也可以根据内存情况分批合并

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:27:20