python + pandas-将df转储到excel中

时间:2018-11-16 14:12:07

标签: python excel pandas dataframe

我有一个字典,其中包含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。

有什么建议吗?

1 个答案:

答案 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可以容纳在内存中的情况下,这种方法才起作用。