如何为合并后的Excel数据每条记录添加对应文件名列?
为合并后的Excel记录添加对应文件名列的解决方案
你只需要在读取每个Excel文件后,新增一列存储该文件的名称,再进行合并即可。具体修改如下:
关键修改点
- 导入
os模块用于提取文件名(避免手动处理路径字符串) - 循环中避免用
file作为DataFrame变量名(防止覆盖原文件名变量) - 新增列存储当前文件的纯文件名(不带路径)
修改后的完整代码
import glob import os import pandas as pd files = [item for item in glob.glob(r'../content/*.xlsx')] combined = pd.DataFrame() for file_path in files: # 读取Excel文件,保留指定列 df = pd.read_excel(file_path, skiprows=1, usecols=['Уровень','Код WBS','Код','Тип','Название']) # 提取不带路径的纯文件名 file_name = os.path.basename(file_path) # 新增列存储当前文件名 df['文件名'] = file_name # 合并数据 combined = pd.concat([combined, df]) # 导出时关闭索引列,避免生成多余数据 combined.to_excel("../content/multiplesheet.xlsx", sheet_name='Sheet', index=False)
额外优化说明
- 原代码中
file = file[['Уровень',...]]可以省略,因为usecols已经指定了读取列的顺序和范围 - 添加
index=False参数,防止导出Excel时自动生成索引列
内容的提问来源于stack exchange,提问作者Ujin Mitin
相关产品推荐
相关产品推荐

