gpt4 book ai didi

python - 如果工作表不存在,Pandas 将工作表附加到工作簿,否则覆盖工作表

转载 作者:行者123 更新时间:2023-12-04 19:47:11 29 4
gpt4 key购买 nike

我正在使用 pandas 更新现有的 Excel 工作簿。使用 ExcelWriter 对象时,是否可以覆盖存在的工作表,否则创建新工作表?我的代码附加了新工作表,但是当我尝试覆盖现有工作表时,它附加了一个名称略有不同的新工作表(例如:如果工作表“data1”存在,运行代码会附加一个名为“data1 1”的新工作表) .

import pandas as pd
import openpyxl
path = 'test-out.xlsx'
book = openpyxl.load_workbook(path)
df1 = pd.DataFrame({'a': range(10), 'b': range(10)})
writer = pd.ExcelWriter(path, mode='a')
writer.book = book
df1.to_excel(writer, sheet_name='data1')
writer.save()

最佳答案

使用 writer.sheets = dict((ws.title, ws) for ws in book.worksheets) 将工作表传递给 writer:

import pandas as pd
import openpyxl
path = 'test-out.xlsx'
book = openpyxl.load_workbook(path)
df1 = pd.DataFrame({'a': range(10), 'b': range(10)})
writer = pd.ExcelWriter(path, mode='a')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df1.to_excel(writer, sheet_name='data1')
writer.save()

编辑:

似乎你甚至不需要 mode='w'writer = pd.ExcelWriter(path, mode='a') 仍然有效。 .

关于python - 如果工作表不存在,Pandas 将工作表附加到工作簿,否则覆盖工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873709/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com