循环浏览一个文件夹,将多个Excel表格合并成一列

我有几个练习册,每个练习册有三张。 我想遍历每个工作簿,并将sheet_1所有数据合并到一个新的workbook_1文件sheet_2并将workbook_2文件& sheet_3合并到workbook_3中。

据我可以告诉下面的脚本做我需要的一切,除了附加数据之外,它覆盖了前面迭代的数据。

为简化起见,我简化了脚本,清理并简化了脚本,但如果需要的话,我很乐意分享完整的脚本。

 import pandas as pd import glob search_dir= ('/Users/PATH/*.xlsx') sheet_names = ['sheet_1','sheet_2','sheet_2'] def a_joiner(sheet): for loop_x in glob.glob(search_dir): try: if sheet == 'sheet_1': id_file= pd.ExcelFile(loop_x) df_1 = id_file.parse(sheet, header= None) writer= pd.ExcelWriter('/Users/PATH/%s.xlsx' %(sheet), engine= 'xlsxwriter') df_1.to_excel(writer) writer.save() elif sheet == 'sheet_2': #do same as above else: #and do same as above again except Exception as e: print('Error:',e) for sheet in sheet_names: a_joiner(sheet) 

你也可以easilly追加数据,如:

 df = [] for f in ['c:\\file1.xls', 'c:\\ file2.xls']: data = pd.read_excel(f, 'Sheet1').iloc[:-2] data.index = [os.path.basename(f)] * len(data) df.append(data) df = pd.concat(df) 

来自: 使用pandas合并/合并2个不同的Excel文件/工作表