将许多小型数据框导出到单个Excel工作表

使用此代码 ,可以将每个数据框导出到迭代数据框列表的新工作表中:

def save_xls(list_dfs, xls_path): writer = ExcelWriter(xls_path) for n, df in enumerate(list_dfs): df.to_excel(writer,'sheet_dati%s' % n) writer.save() save_xls(list_dfs, xls_path) 

但是可以在一个工作表中导出两个或多个数据框?

如果你想在同一张纸上有多个DataFrames ,你将如何组合它们? 预先将它们合并,连接或连接成一个DataFrame因为pandas给你提供了多种方法。 然后做你的出口。

像这样的东西:?

 from pandas import ExcelWriter def dfs2xlsx(list_dfs,xls_path = None): #save_xls([df1,df2],'output1.xlsx') if xls_path == None : xls_path = '~tmp.xlsx' writer = ExcelWriter(xls_path) i=0 for n, df in enumerate(list_dfs): df.to_excel(writer,'Sheet1',startcol=i,startrow =2) i+= len(df.columns) + 2 writer.save() os.system('start excel.exe %s' %(writer.path )) 

我想你会输出之前 (通过to_excel )更好的做这些DataFrames的concat 。 那是:

 pd.concat(list_dfs).to_excel(xls_path) 

+1为ashkan的答案。 这种方法允许您多次写入标题,并且比在单个数据框之间留出空间更容易,比将空白行插入到一个更大的连续数据框中更容易。 例如:

 writer = pd.ExcelWriter(os.path.join(filepath, filename)) for item in list_of_dataframes: item.to_excel(writer, "sheetname", startcol=0, startrow=n) n += len(item.index) + 2 writer.save() 

这使您可以将多个(可能不同或不相关的)数据框一个接一个地写入一个Excel表单中,并在每个页面之间留下空行。