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

Pandas导入多Sheet的Excel,添加工作表名列后按列数分组拼接DataFrame

你可以按列数对所有DataFrame分组后拼接,完整实现代码如下:

import pandas as pd
from collections import defaultdict

# 你已有的处理逻辑
my_dict = pd.read_excel('test.xlsx', header=0, sheet_name=None)
for key, df in my_dict.items():
    df['sheet_name'] = key

# 按列数分组
group_by_colcnt = defaultdict(list)
for df in my_dict.values():
    # 以DataFrame的列数为分组键
    col_count = df.shape[1]
    group_by_colcnt[col_count].append(df)

# 对每个分组内的DataFrame进行拼接,得到最终结果字典
concat_result = {
    col_cnt: pd.concat(df_list, ignore_index=True) 
    for col_cnt, df_list in group_by_colcnt.items()
}

你可以直接通过列数取值获取拼接后的DataFrame:

  • 原数据为1列的工作表,新增sheet_name列后总列数为2,对应结果为 concat_result[2]
  • 原数据为2列的工作表,新增sheet_name列后总列数为3,对应结果为 concat_result[3]

如果需要把不同分组的结果导出为单独的Excel文件,可以追加以下代码:

for col_cnt, df in concat_result.items():
    df.to_excel(f"合并结果_总列数{col_cnt}.xlsx", index=False)

内容的提问来源于stack exchange,提问作者Steven González

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:09:03