我对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
我希望最后的文件是:
col5 col4 col1 col2 col3
F1 A35 XYZ 100 Ex-1
F2 B97 ABC 101 Ex-2

发布于 2017-12-19 22:00:28
你可以这样做:
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)结果:
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 B97https://stackoverflow.com/questions/47894067
复制相似问题