我有一个字典,其中包含100个熊猫DFS。
我想遍历字典中的每个df并将其转储到excel中,全部放在一张纸上,一个接一个地排成一行。
我的尝试
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
workbook = writer.book
for key, values in dd.iteritems():
df = dd[key]['chart_data']
df.to_excel(writer, sheet_name='Sheet 1', index=False)
writer.save()
workbook.close()
我认为它会覆盖dfs。
有什么建议吗?
答案 0 :(得分:5)
startrow
听起来像您的解决方案:
start_row = 0
for key, values in dd.iteritems():
df = dd[key]['chart_data']
df.to_excel(writer, sheet_name='Sheet 1', index=False, startrow=start_row)
# Edited to respect your requirement for 1 blank row
# after each df
start_row = start_row + len(df) + 1 # or df.shape[0] et cetera
它只是选择开始转储到哪一行。您可能还需要指定startcol
,它的工作原理相同,但我认为它是按原样工作的。
编辑:另一种也许更好的方法是进行concat
。像这样:
df = pd.concat([dd[key]["chart_data"] for key, values in dd.iteritems()])
df.to_excel(...)
但是只有在您的df
可以容纳在内存中的情况下,这种方法才起作用。