使用this code,可以在迭代数据框列表的新工作表中导出每个数据框:
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)
但是可以在一个工作表中导出两个或更多数据框吗?
答案 0 :(得分:11)
这样的事情:?
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 ))
答案 1 :(得分:5)
如果您想在同一张表格上有多个DataFrames
,您会将它们合并吗?而是预先merge, join, or concatenate将它们分成一个DataFrame
,因为大熊猫会为您提供多种方式。然后进行导出。
答案 2 :(得分:3)
答案 3 :(得分:3)
+1为ashkan的回答。这种方法允许您多次编写标题,并且比在一个更大的concat数据帧中插入空行更容易在各个数据帧之间留出空间。例如:
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工作表中,当您沿着页面向下时在每个数据框之间留下一个空行。