首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python代码将工作表名创建为新列并合并Excel中的所有工作表

Python代码将工作表名创建为新列并合并Excel中的所有工作表
EN

Stack Overflow用户
提问于 2017-12-19 19:37:03
回答 1查看 1.7K关注 0票数 1

我对Python很陌生,看看是否有一个包可以执行以下操作:

我需要创建一个合并的excel文件,它将工作表名作为工作表中每一行的新属性。

F1.xlsx具有A35、A74、B97等,如表名F2.Xlsx有AX54、BT25等,C作为工作表名

F1.xlsx

单张A35 col1 col2 col3 XYZ 100 Ex-1 单张B97 col1 col2 col3 ABC 101 Ex-2

F2.xlsx

单张AX54 col1 col2 col3 XYZefg 110 Ex-3 单张B97 col1 col2 col3 ABCef 105 Ex-4

我希望最后的文件是:

代码语言:javascript
复制
col5    col4    col1    col2    col3
F1      A35     XYZ     100    Ex-1
F2      B97     ABC     101    Ex-2

在这里输入图像描述

EN

回答 1

Stack Overflow用户

发布于 2017-12-19 22:00:28

你可以这样做:

代码语言:javascript
复制
import os
from glob import glob

f_mask = r'D:\temp\.data\47894067\*.xlsx'

df = \
pd.concat([df.assign(file=os.path.splitext(os.path.basename(f))[0],
                     sheet=sheet)
           for f in glob(f_mask)
           for sheet, df in pd.read_excel(f, sheet_name=None).items()],
          ignore_index=True)

结果:

代码语言:javascript
复制
In [2]: df
Out[2]:
     col1   col2  col3 file sheet
0     XYZ  100.0  Ex-1   F1   A35
1     ABC  101.0  Ex-2   F1   B97
2  XYZefg  110.0  Ex-3   F2  AX54
3   ABCef  105.0  Ex-4   F2   B97
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47894067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档