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

Python导入多Excel文件:为DataFrame添加文件名遇阻

解决Excel文件合并时添加来源文件名的问题

我明白你的需求——把文件夹里所有Excel文件的单个工作表数据合并成一个主DataFrame,同时要让每条数据都能对应上它来自哪个文件对吧?这其实只需要在读取每个文件后,给对应的DataFrame新增一列存储文件名,再合并就可以了。我给你调整了代码,同时加了一些实用的细节:

import os
import pandas as pd

path = "C:/backup/vp/apr 11 2018 and related files/All Files/"
# 过滤出文件夹里的Excel文件,避免处理非表格文件导致报错
all_files = [os.path.join(path, file) for file in os.listdir(path) 
             if file.endswith(('.xlsx', '.xls'))]

main_df = pd.DataFrame()

for file_path in all_files:
    # 提取不带路径的纯文件名,比如从完整路径里拿到"test.xlsx"
    file_name = os.path.basename(file_path)
    # 读取Excel文件的第一个工作表(如果要指定表名,加sheet_name="你的表名"即可)
    df = pd.read_excel(file_path)
    # 核心步骤:新增一列,把当前文件名赋值给这一列的所有行
    df['来源文件'] = file_name
    # 用concat合并到主DataFrame,ignore_index重置索引避免重复
    main_df = pd.concat([main_df, df], ignore_index=True)

# 可以打印前几行验证结果
print(main_df.head())

关键细节说明:

  • 用os.path.join拼接路径比直接字符串相加更稳妥,能自动适配Windows和Linux的路径分隔符
  • os.path.basename专门用来提取纯文件名,不用自己手动切割字符串
  • 替换了过时的append方法,用pd.concat合并DataFrame更高效,也是pandas官方推荐的方式
  • 加了文件后缀过滤,确保只处理Excel文件,避免读取txt、图片这类文件时抛出异常

如果需要处理多工作表的文件,或者想捕获读取失败的情况,可以试试这个增强版:

import os
import pandas as pd

path = "C:/backup/vp/apr 11 2018 and related files/All Files/"
all_files = [os.path.join(path, file) for file in os.listdir(path) 
             if file.endswith(('.xlsx', '.xls'))]

main_df = pd.DataFrame()

for file_path in all_files:
    try:
        file_name = os.path.basename(file_path)
        # 获取文件里的所有工作表名
        sheet_names = pd.ExcelFile(file_path).sheet_names
        for sheet in sheet_names:
            df = pd.read_excel(file_path, sheet_name=sheet)
            # 可以同时记录文件名和工作表名
            df['来源文件'] = file_name
            df['来源工作表'] = sheet
            main_df = pd.concat([main_df, df], ignore_index=True)
        print(f"成功处理文件:{file_name}")
    except Exception as e:
        print(f"处理文件{file_name}时出错:{str(e)}")
        continue

print(f"合并完成,总共有{len(main_df)}条数据")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:59:55