【问题标题】:Python how to export dataframes to two tabs in xlsxPython如何将数据框导出到xlsx中的两个选项卡
【发布时间】:2020-01-07 22:08:12
【问题描述】:

我想将数据框 C 导出到现有的 excel 中,并将其保存在新选项卡中。 我试过了:

writer=pd.ExcelWriter(r'H:\test.xlsx', engine='xlsxwriter')
C.to_excel(writer,sheet_name='c') 
writer.save()

(注意:Excel 测试是一个现有和以前保存的 Excel,在选项卡 a、b 中有不同的表 A、B,我想保留它们)

但是,此代码删除了现有的 excel 并创建了一个只有选项卡“c”的新 Excel。我想保留现有的标签“a”和“b”。

什么是正确的方法?

ps:我尝试了链接“如何使用 Pandas 在现有的 excel 文件中保存新工作表?”的建议,如下所示:

writer=pd.ExcelWriter(r'H:\C.xlsx', engine='xlsxwriter')
y_pred_all2.to_excel(writer,sheet_name='cc')
writer.save()
writer.close()
from openpyxl import load_workbook
path=r'H:\C.xlsx'
book=load_workbook(path)
writer=pd.ExcelWriter(path, engine='xlsxwriter')
writer.book=book
C.to_excel(writer,sheet_name='returns') 

这给了我错误:AttributeError: 'Workbook' object has no attribute 'add_worksheet'

【问题讨论】:

  • 我尝试了链接“如何使用 Pandas 在现有 excel 文件中保存新工作表?”的建议,如下所示:writer=pd.ExcelWriter(r'H:\C.xlsx', engine ='xlsxwriter') y_pred_all2.to_excel(writer,sheet_name='cc') writer.save() writer.close() from openpyxl import load_workbook path=r'H:\C.xlsx' book=load_workbook(path) writer= pd.ExcelWriter(path, engine='xlsxwriter') writer.book=book C.to_excel(writer,sheet_name='returns') 这给了我错误:AttributeError: 'Workbook' object has no attribute 'add_worksheet'
  • 你必须使用 xlsxwriter 吗?根据answer,听起来这可能是该库中的一个限制。根据 pandas docs 的说法,ExcelWriter 的默认值是 openpyxl,它应该能够做到这一点。
  • 确实如此。使用 writer=pd.ExcelWriter(path,engine='openpyxl') 有效。非常感谢。
  • 太好了,将我的评论移至答案。

标签: python xlsxwriter


【解决方案1】:

根据answer,这是 xlsxwriter 引擎中的一个限制。 pandas docs 显示 ExcelWriter 的默认设置是使用 openpyxl,它应该能够完成您正在寻找的工作。如果您想明确说明正在使用的引擎,这应该可行:

writer = pd.ExcelWriter(path, engine='openpyxl')

【讨论】:

    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    相关资源
    最近更新 更多