Python遍历Excel文件目录并合并至DataFrame底部的技术实现求助
批量处理Excel文件并合并数据到单个DataFrame
我之前也做过类似的批量Excel处理需求,你的思路完全靠谱——先验证单个文件的处理逻辑,再循环批量处理合并。下面给你调整后的完整实现方案,一步步帮你搞定:
核心实现思路
- 先初始化一个空的DataFrame,用来存放所有合并后的最终数据
- 遍历目标文件夹里的所有文件,只筛选Excel格式的文件避免报错
- 对每个文件复用你已经验证过的读取和格式化逻辑
- 将处理好的单文件数据追加到总DataFrame中
完整代码示例
import pandas as pd import os # 设置你的目标文件夹路径,替换成实际路径比如"C:/MyExcelFiles" path = "你的文件夹路径" # 初始化空的总DataFrame combined_df = pd.DataFrame() # 遍历文件夹中的所有文件 for filename in os.listdir(path): # 只处理.xlsx和.xls格式的Excel文件,过滤其他杂文件 if filename.endswith(('.xlsx', '.xls')): # 用os.path.join拼接路径,避免Windows/Linux路径分隔符问题 file_path = os.path.join(path, filename) print(f"正在处理文件: {filename}") # 复用你已经验证过的读取逻辑 df = pd.read_excel( file_path, sheet_name="sheet2", skiprows=2, header=None, skipfooter=132 ) # 这里粘贴你已经写好的所有格式化代码 # ...(比如数据清洗、列重命名、格式转换等操作) # 将当前文件的DataFrame追加到总DataFrame combined_df = pd.concat([combined_df, df], ignore_index=True) # 处理完成后可以查看结果,或者保存到新Excel文件 print(f"所有文件处理完成,合并后总数据行数: {len(combined_df)}") # 保存合并结果到新文件,index=False避免生成多余的索引列 combined_df.to_excel("合并后的总数据.xlsx", index=False)
优化细节说明
- 用
os.path.join拼接文件路径比直接用+更稳妥,能自动适配不同系统的路径分隔符 - 加入文件格式过滤,防止误读文件夹里的非Excel文件导致报错
- 使用
pd.concat替代已被弃用的append方法,合并效率更高;ignore_index=True会重置合并后的索引,避免出现重复索引问题 - 如果你的文件数量特别多,可以先把所有处理好的DataFrame存入一个列表,最后一次性合并,性能会更好:
# 大文件场景优化版 df_list = [] for filename in os.listdir(path): if filename.endswith(('.xlsx', '.xls')): # 读取和格式化逻辑... df_list.append(df) combined_df = pd.concat(df_list, ignore_index=True)
内容的提问来源于stack exchange,提问作者carrera997
相关产品推荐
相关产品推荐

