保存多个熊猫数据框到Excel文件与Styleframe,每一个在不同的工作表



我试图保存一些熊猫数据框excel。我希望他们都在同一个excel文件,但每一个在不同的工作表。

这是我现在有的。这只是将所有数据帧保存到单独的文件中。我用的是StyleFrame。这些数据帧中的一些值具有n。当我写信给excel时,我希望它在每个单元格中注册为一个新行。

使用StyleFrame是我能找到的唯一解决方案。

file_path = "path_to_save_files"
StyleFrame(df1).to_excel(file_path + '/df1.xlsx').save()
StyleFrame(df2).to_excel(file_path + '/df2.xlsx').save()
StyleFrame(df3).to_excel(file_path + '/df3.xlsx').save()

这是我试过的。这通常是有效的:

writer = pd.ExcelWriter(f'{file_path}/output.xlsx', engine='xlsxwriter')
StyleFrame(df1).to_excel(writer, sheet_name = "sheet1")
StyleFrame(df2).to_excel(writer, sheet_name = "sheet2")
StyleFrame(df3).to_excel(writer, sheet_name = "sheet3")

然而,因为我使用StyleFrame,我得到一个错误:

AttributeError: 'Worksheet' object没有属性'sheet_view'

有什么建议吗?

你使用xlsxwriter作为引擎有什么特别的原因吗?styleframe只支持openpyxl,所以这将工作:

writer = pd.ExcelWriter(f'{file_path}/output.xlsx', engine='openpyxl')
df1 = pd.DataFrame({'a':[1]})
df2 = pd.DataFrame({'b':[2]})
StyleFrame(df1).to_excel(writer, sheet_name="sheet1")
StyleFrame(df2).to_excel(writer, sheet_name="sheet2")
writer.save()

注意,你必须显式调用writer.save()(就像直接使用pandas.DataFrame一样)。

pd.ExcelWriter(f'{file_path}/output.xlsx', engine='openpyxl')有一个快捷方式:

writer = StyleFrame.ExcelWriter(f'{file_path}/output.xlsx')

相关内容

最新更新