我有一个包含 100 个 panda dfs 的字典。
我想循环遍历字典中的每个 df 并将其转储到 Excel 中,全部在一张纸上,一个接一个,中间有 1 个空白行。
我的尝试:
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。
有什么建议吗?
最佳答案
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
适合内存时,这才有效。
关于python + pandas - 将 df 转储到循环中的 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339519/