Python合并文件夹Excel文件时添加原文件名列的实现需求
给合并后的Excel添加原文件名列的解决方案
你只需要在读取每个Excel文件后,新增一列记录当前文件的名称,再合并即可。这里用os.path.basename()提取纯文件名(避免存储完整路径),同时推荐用pd.concat()替代已弃用的append()方法,代码修改如下:
import glob import pandas as pd import os # 导入os模块处理文件名 path = "C:/Users/kbisht/Downloads/AIR REPORT/Consolidated sentinal Hospital" file_list = glob.glob(path + "/*.xlsx") excl_merged = pd.DataFrame() for file in file_list: # 读取单个Excel文件 df = pd.read_excel(file) # 提取不带路径的纯文件名 filename = os.path.basename(file) # 新增列,赋值当前文件名 df['原文件名'] = filename # 合并到总数据框 excl_merged = pd.concat([excl_merged, df], ignore_index=True) # 保存合并后的结果 excl_merged.to_excel('Consolidated_sentinal_kuber5.xlsx', index=False)
关键修改说明:
- 新增
os模块导入:用来从完整路径中提取纯文件名,避免合并后的表格里出现冗长的路径字符串 - 读取文件后立即添加列:确保当前文件的所有行都带上对应的文件名标记
- 替换
append()为pd.concat():因为DataFrame.append()在pandas 2.0+版本已被弃用,concat()是更稳定的合并方式
后续你可以通过类似excl_merged[excl_merged['原文件名'] == "目标文件名.xlsx"]的代码,快速筛选出来自特定文件的数据。
内容的提问来源于stack exchange,提问作者ksb23
相关产品推荐
相关产品推荐

