如何在不先导出数据帧的情况下写入 Excel sheet?
How to write to an Excel sheet without exporting a dataframe first?
我正在尝试将一些文本写入 Excel 文件中的特定 sheet。我将一些 pandas 数据帧导出到其他选项卡,但在这个选项卡中我只需要一些文本 - 基本上是一些解释其他选项卡如何计算的注释。
我试过了,但没用:
import pandas as pd
writer=pd.ExcelWriter('myfile.xlsx')
writer.sheets['mytab'].write(1,1,'This is a test')
writer.close()
我尝试添加 writer.book.add_worksheet('mytab')
和
ws=writer.sheets['mytab']
ws.write(1,1,'This is a test')
但在所有情况下我都会得到:keyerror:'mytab'
。
我找到的唯一解决方案是在将我的文本写入同一选项卡之前向选项卡写入一个空数据框:
emptydf=pd.DataFrame()
emptydf['x']=[None]
emptydf.to_excel(writer,'mytab',header=False, index=False)
我当然可以创建一个工作簿实例,如 xlsxwriter 文档中的示例所示:http://xlsxwriter.readthedocs.io/worksheet.html
但是,我的问题是我已经有一个 pd.ExcelWriter 实例,它在我的其余代码中用于创建另一个 excel sheets.
我什至尝试将工作簿实例传递给 to_excel()
,但它不起作用:
workbook = xlsxwriter.Workbook('filename.xlsx')
emptydf.to_excel(workbook,'mytab',header=False, index=False)
我的导出空数据框的解决方案是否有任何替代方案 - 这看起来尽可能地非 Python 化?
您提到您使用了 writer.book 对象中的 add_worksheet() 方法,但它似乎可以正常工作并执行您希望它执行的操作。下面我放了一个成功运行的可重现示例。
import pandas as pd
print(pd.__version__)
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
workbook = writer.book
ws = workbook.add_worksheet('mytab')
ws.write(1,1,'This is a test')
writer.close()
我想我还要提到我正在使用 pandas 0.18.1。
我正在尝试将一些文本写入 Excel 文件中的特定 sheet。我将一些 pandas 数据帧导出到其他选项卡,但在这个选项卡中我只需要一些文本 - 基本上是一些解释其他选项卡如何计算的注释。
我试过了,但没用:
import pandas as pd
writer=pd.ExcelWriter('myfile.xlsx')
writer.sheets['mytab'].write(1,1,'This is a test')
writer.close()
我尝试添加 writer.book.add_worksheet('mytab')
和
ws=writer.sheets['mytab']
ws.write(1,1,'This is a test')
但在所有情况下我都会得到:keyerror:'mytab'
。
我找到的唯一解决方案是在将我的文本写入同一选项卡之前向选项卡写入一个空数据框:
emptydf=pd.DataFrame()
emptydf['x']=[None]
emptydf.to_excel(writer,'mytab',header=False, index=False)
我当然可以创建一个工作簿实例,如 xlsxwriter 文档中的示例所示:http://xlsxwriter.readthedocs.io/worksheet.html 但是,我的问题是我已经有一个 pd.ExcelWriter 实例,它在我的其余代码中用于创建另一个 excel sheets.
我什至尝试将工作簿实例传递给 to_excel()
,但它不起作用:
workbook = xlsxwriter.Workbook('filename.xlsx')
emptydf.to_excel(workbook,'mytab',header=False, index=False)
我的导出空数据框的解决方案是否有任何替代方案 - 这看起来尽可能地非 Python 化?
您提到您使用了 writer.book 对象中的 add_worksheet() 方法,但它似乎可以正常工作并执行您希望它执行的操作。下面我放了一个成功运行的可重现示例。
import pandas as pd
print(pd.__version__)
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
workbook = writer.book
ws = workbook.add_worksheet('mytab')
ws.write(1,1,'This is a test')
writer.close()
我想我还要提到我正在使用 pandas 0.18.1。