【发布时间】:2021-12-18 15:27:22
【问题描述】:
我有一个Dataframe 列表,我需要在不同工作表的 excel 文件中写入该列表。目前我正在使用以下代码 -
dfs = [df1, df2, df3, df4]
sheets = ['sheet1', 'sheet2', 'sheet3', 'sheet4']
df_sheets = zip(dfs, sheets)
for df, sheet_name in df_sheets:
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl', mode='a', if_sheet_exists='replace')
writer.book = openpyxl.load_workbook('output.xlsx')
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
df.to_excel(writer, sheet_name, index=False)
writer.close()
现在这需要更多的时间和内存。我试图在循环前移动writer 启动和循环后移动writer.close()。但随后没有任何内容写入 excel 文件。
【问题讨论】:
-
打开每个数据帧的工作簿总是会很慢。
-
@CharlieClark 哦,这意味着我应该在循环之前将所有内容从
df.to_excel(...)移开。和writer.close()循环后?
标签: python excel pandas openpyxl