可以使用以下方法将数据写入特定单元格:
xlsworksheet.write('B5', 'Hello')
但是如果你试着写一个完整的数据帧,df2,从单元格'B5'开始:
xlsworksheet.write('B5', df2)
TypeError: Unsupported type <class 'pandas.core.frame.DataFrame'> in write()
从特定单元格开始编写整个数据帧的方法是什么?
我问这个的原因是因为我需要在excel中的同一张表中粘贴2个不同的pandas数据帧。
答案 0 :(得分:6)
XlsxWriter不直接编写Pandas数据帧。但是,它与Pandas集成在一起,所以你可以反过来做。
以下是使用Pandas to_excel
的startrow
参数将2个数据框写入同一工作表的小例子:
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)
输出:
您可以使用其他to_excel
选项关闭列和行索引。
答案 1 :(得分:1)
您将字符串写入Excel。要将DataFrames转换为字符串,您可以使用以下几个选项,to_csv是最佳选择:
>>> string1 = df1.to_csv(writer)
>>> xlsworksheet.write('B5',string1)
>>> string2 = df2.to_csv(writer,'Sheet2')
>>> xlsworksheet.write('C5', string2)
请注意,这会将整个数据帧写入一个单元格。我知道将一个框架写入Excel工作表中单个单元格的唯一方法是将它们组合起来然后使用to_excel:
>>> writer = ExcelWriter('output.xlsx')
>>> frame = pd.concat(df1, df2)
>>> frame.to_excel(writer,'Sheet1')
希望这会有所帮助......