将 strings/text 和 pandas 数据帧写入 excel
Write strings/text and pandas dataframe to excel
我想像这样将一些文本和数据框保存到 excel 文件中:
因此,我得到了以下变量:
text1 = "some text here"
text2 = "other text here"
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [6,7,8,9,10], "c": [11,12,13,14,15]})
据我所知,可以使用 xlsxwriter 来执行此操作,这意味着我基本上必须遍历整个数据帧以将每个条目写入 excel 工作簿中的不同单元格.这很麻烦。
所以,我认为必须有更简单的方法来做到这一点;像这样:
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
writer.write(text1, startrow=0, startcol=0)
writer.write(text1, startrow=1, startcol=0)
df.to_excel(writer, startrow=4, startcol=0)
有没有更简单的方法?
text1 = "some text here"
text2 = "other text here"
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [6,7,8,9,10], "c": [11,12,13,14,15]})
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
df.to_excel(writer, startrow=4, startcol=0)
worksheet = writer.sheets['Sheet1']
worksheet.write(0, 0, text1)
worksheet.write(1, 0, text2)
#another solution
#worksheet.write_string(0, 0, text1)
#worksheet.write_string(1, 0, text2)
writer.save()
注:
write
和 write_string
实际上是 xlsxwriter
包函数。要使用它们,必须安装软件包并且 pd.ExcelWriter
必须用 xlsxwriter
引擎初始化(在 pandas 1.0.5 中它默认为 io.excel.<extension>.writer 引擎)
以上解决方案是正确的...但是
写入函数是 xlsxwriter 库的一部分。
声明编写器时,您需要指明希望 pandas 使用的引擎。
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
xlsxwriters 函数随后可通过 pandas 使用。上述解决方案中的所有其他代码保持不变。
当然你需要安装库。 Here 是程序检查。
会发表评论,但回复很低
你也可以使用openpyxl包:
import pandas as pd
df = <pandas dataframe>
with pd.ExcelWriter(filename) as writer:
text = "Text message"
text_sheet = writer.book.create_sheet(title='text_sheet')
text_sheet.cell(column=1, row=1, value=text)
df.to_excel(writer, sheet_name = 'df_sheet', index = False)
虽然这不会把它放在同一个 sheet 上。
我想像这样将一些文本和数据框保存到 excel 文件中:
因此,我得到了以下变量:
text1 = "some text here"
text2 = "other text here"
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [6,7,8,9,10], "c": [11,12,13,14,15]})
据我所知,可以使用 xlsxwriter 来执行此操作,这意味着我基本上必须遍历整个数据帧以将每个条目写入 excel 工作簿中的不同单元格.这很麻烦。
所以,我认为必须有更简单的方法来做到这一点;像这样:
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
writer.write(text1, startrow=0, startcol=0)
writer.write(text1, startrow=1, startcol=0)
df.to_excel(writer, startrow=4, startcol=0)
有没有更简单的方法?
text1 = "some text here"
text2 = "other text here"
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [6,7,8,9,10], "c": [11,12,13,14,15]})
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
df.to_excel(writer, startrow=4, startcol=0)
worksheet = writer.sheets['Sheet1']
worksheet.write(0, 0, text1)
worksheet.write(1, 0, text2)
#another solution
#worksheet.write_string(0, 0, text1)
#worksheet.write_string(1, 0, text2)
writer.save()
注:
write
和 write_string
实际上是 xlsxwriter
包函数。要使用它们,必须安装软件包并且 pd.ExcelWriter
必须用 xlsxwriter
引擎初始化(在 pandas 1.0.5 中它默认为 io.excel.<extension>.writer 引擎)
以上解决方案是正确的...但是
写入函数是 xlsxwriter 库的一部分。 声明编写器时,您需要指明希望 pandas 使用的引擎。
writer = pd.ExcelWriter("test.xlsx", engine="xlsxwriter")
xlsxwriters 函数随后可通过 pandas 使用。上述解决方案中的所有其他代码保持不变。
当然你需要安装库。 Here 是程序检查。
会发表评论,但回复很低
你也可以使用openpyxl包:
import pandas as pd
df = <pandas dataframe>
with pd.ExcelWriter(filename) as writer:
text = "Text message"
text_sheet = writer.book.create_sheet(title='text_sheet')
text_sheet.cell(column=1, row=1, value=text)
df.to_excel(writer, sheet_name = 'df_sheet', index = False)
虽然这不会把它放在同一个 sheet 上。