XlsxWriter python在特定单元格中写入数据帧

XlsxWriter python在特定单元格中写入数据帧,python,pandas,xlsxwriter,Python,Pandas,Xlsxwriter,可以使用以下方法将数据写入特定单元格: xlsworksheet.write('B5', 'Hello') 但如果您试图从单元格“B5”开始编写一个完整的数据帧df2: xlsworksheet.write('B5', df2) TypeError: Unsupported type <class 'pandas.core.frame.DataFrame'> in write() xlsworksheet.write('B5',df2) TypeError:write()中不支

可以使用以下方法将数据写入特定单元格:

xlsworksheet.write('B5', 'Hello')
但如果您试图从单元格“B5”开始编写一个完整的数据帧df2:

xlsworksheet.write('B5', df2)

TypeError: Unsupported type <class 'pandas.core.frame.DataFrame'> in write()
xlsworksheet.write('B5',df2)
TypeError:write()中不支持的类型
从一个特定的单元开始写入整个数据帧的方式应该是什么


我问这个问题的原因是因为我需要在excel中的同一个工作表中粘贴两个不同的数据框。

您可以将字符串写入excel。要将数据帧转换为字符串,您可以选择以下几个选项:

>>> string1 = df1.to_csv(writer)
>>> xlsworksheet.write('B5',string1)
>>> string2 = df2.to_csv(writer,'Sheet2')
>>> xlsworksheet.write('C5', string2)
注意,这将把整个数据帧写入一个单元格。我所知道的将框架写入Excel工作表中单个单元格的唯一方法是将它们组合起来,然后使用:


希望这有帮助…

XlsxWriter不会直接写入数据帧。然而,它与熊猫是一体的,所以你可以用另一种方式来做

下面是一个使用Pandas的
startrow
参数将两个数据帧写入同一工作表的小示例:

输出:


您可以使用其他
到_excel
选项关闭列和行索引。

谢谢@jmcnamara正是我要找的。您可能需要在末尾添加
writer.close()
,以解锁创建的文件。新pythoner可能认为该代码失败。此代码将删除工作簿中的所有其他工作表。如何在保持Sheet2、3等不变的情况下仅写入Sheet1。要使用excel(编写器,“Sheet1”),请删除工作簿中的所有其他工作表。如何在保留现有工作表的同时只向Sheet1写入?
>>> writer = ExcelWriter('output.xlsx')
>>> frame = pd.concat(df1, df2)
>>> frame.to_excel(writer,'Sheet1')
import pandas as pd

df1 = pd.DataFrame({'Data': [10, 20, 30, 40]})
df2 = pd.DataFrame({'Data': [13, 24, 35, 46]})

writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet1', startrow=6)