Pandas 和 xlsxwriter:如何在不导出数据框的情况下创建新的 sheet?
Pandas and xlsxwriter: how to create a new sheet without exporting a dataframe?
如果我直接调用 xlsxwriter 模块,很容易在新文件中创建一个新的 sheet,并写入它的单元格,例如:
import xlsxwriter
workbook = xlsxwriter.Workbook('test 1.xlsx')
wks1=workbook.add_worksheet('Test sheet')
wks1.write(0,0,'some random text')
workbook.close()
但是,我的问题是:如何使用 Pandas.ExcelWriter 对象创建一个新的 sheet? 该对象可以创建一个新的 sheet 导出数据框时,如果我没有要导出的数据框怎么办?
例如假设我已经将 4 个数据帧导出到 4 个单独的 sheet,现在我只想将一些文本写入新的 sheet。我找到的唯一解决方案是创建一个空数据框,导出它(创建新的 sheet),然后写入 sheet:
import pandas as pd
writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')
df=pd.DataFrame()
df.to_excel(writer, 'new sheet', index=False, startrow=0,startcol=0)
writer.sheets['new sheet'].write(0,0,'some random text')
writer.close()
还有别的办法吗? add_worksheet() 似乎只是工作簿 class 的一种方法,而不是 ExcelWriter
的一种方法
我没有发现您的操作方式有任何问题,但您也可以使用 ExcelWriter 中的 XlsxWriter 工作簿对象,如下所示:
writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')
workbook = writer.book
worksheet = workbook.add_worksheet('new sheet')
worksheet.write(0, 0, 'some random text')
如果我直接调用 xlsxwriter 模块,很容易在新文件中创建一个新的 sheet,并写入它的单元格,例如:
import xlsxwriter
workbook = xlsxwriter.Workbook('test 1.xlsx')
wks1=workbook.add_worksheet('Test sheet')
wks1.write(0,0,'some random text')
workbook.close()
但是,我的问题是:如何使用 Pandas.ExcelWriter 对象创建一个新的 sheet? 该对象可以创建一个新的 sheet 导出数据框时,如果我没有要导出的数据框怎么办?
例如假设我已经将 4 个数据帧导出到 4 个单独的 sheet,现在我只想将一些文本写入新的 sheet。我找到的唯一解决方案是创建一个空数据框,导出它(创建新的 sheet),然后写入 sheet:
import pandas as pd
writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')
df=pd.DataFrame()
df.to_excel(writer, 'new sheet', index=False, startrow=0,startcol=0)
writer.sheets['new sheet'].write(0,0,'some random text')
writer.close()
还有别的办法吗? add_worksheet() 似乎只是工作簿 class 的一种方法,而不是 ExcelWriter
的一种方法我没有发现您的操作方式有任何问题,但您也可以使用 ExcelWriter 中的 XlsxWriter 工作簿对象,如下所示:
writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')
workbook = writer.book
worksheet = workbook.add_worksheet('new sheet')
worksheet.write(0, 0, 'some random text')