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

如何将同一Excel的多个工作表合并为单文件并新增原工作表名列

当然可以实现,你只需要对现有代码做小幅调整即可。

pd.read_excel指定sheet_name=None时会返回一个字典,键就是工作表名称,值为对应工作表的DataFrame结构数据,你可以利用这个特性轻松追加原工作表标记列。

方式1:直接利用concat的索引特性(改动最小)

import pandas as pd
# 读取所有工作表
df_dict = pd.read_excel('multiple_sheets.xlsx', sheet_name=None)
# 合并时将工作表名作为索引层,再转为普通列
single_file = pd.concat(df_dict, names=['sheet_name']).reset_index(level=0).reset_index(drop=True)
# 导出时取消默认的索引列
single_file.to_csv('single_file.csv', index=False)

方式2:遍历工作表追加列后合并(可读性更高、方便自定义逻辑)

import pandas as pd
df_list = []
# 遍历所有工作表,逐表追加标记列
for sheet_name, df in pd.read_excel('multiple_sheets.xlsx', sheet_name=None).items():
    # 新增列存储原工作表名,你可以自行修改列名
    df['sheet_name'] = sheet_name
    df_list.append(df)
# 合并所有表
single_file = pd.concat(df_list, ignore_index=True)
single_file.to_csv('single_file.csv', index=False)

两种方式效果完全一致,最终输出的csv中会新增名为sheet_name的列,每行对应数据来源的原工作表名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:54:03