使用pandas将多个Excel文件横向合并到同一工作表的实现方法
需求
将多个Excel文件合并为一个Excel文件,且所有内容存放在同一个工作表中。
实现伪代码逻辑
- 创建新工作簿,用于存储所有待合并的Excel文件内容
- 循环遍历读取所有Excel文件,将每个文件转换为dataframe
- 将各文件内容写入新建工作簿,相邻两个文件的写入内容之间间隔1列横向排布
初始实现代码
# Combining dataFrames in excel excelName = input("Label your excel file: ") xlsxAUTO = '.xlsx' excelAutoNamed = excelName + xlsxAUTO writer = pd.ExcelWriter(excelAutoNamed,engine='xlsxwriter') wbook = 0 for excel_file in excel_files: Currentwb = load_workbook(excel_file) Currentsheet = Currentwb.worksheets[0] MaxCols = Currentsheet.max_column print(MaxCols) df2 = pd.DataFrame() df2 = pd.read_excel(excel_file) if wbook == 0: MaxCols = 0 print(wbook) df2.to_excel(writer,sheet_name='Validation',startrow=0, startcol=MaxCols+10) writer.save() wbook = wbook+1 print(wbook)
注意事项
每个Excel文件的列数不固定,因此startCol参数需按以下规则计算:
- 获取上一个dataframe的最大列数/列标识存入临时变量,将该值赋值给
startCol参数 - 所有内容需横向并排排布,而非纵向上下堆叠,因此直接使用
axis=1拼接的方式不一定适用
补充说明
需关注原文件与新生成文件的加粗格式差异,附图分别为原Excel文件、新生成Excel文件的效果对比。
内容的提问来源于stack exchange,提问作者Anirudh Gattu
相关产品推荐
相关产品推荐

