【发布时间】:2016-01-02 15:09:17
【问题描述】:
只要是不同的工作表,将许多 pandas 数据框添加到 Excel 工作簿中是很容易的。但是,如果您想使用 pandas 内置的 df.to_excel 功能,将许多数据框放入一个工作表中有些棘手。
# Creating Excel Writer Object from Pandas
writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter')
workbook=writer.book
worksheet=workbook.add_worksheet('Validation')
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)
another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0)
上面的代码不起作用。你会得到 p> 的错误
Sheetname 'Validation', with case ignored, is already in use.
现在,我已经进行了足够多的实验,找到了一种让它发挥作用的方法。
writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter') # Creating Excel Writer Object from Pandas
workbook=writer.book
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)
another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0)
这会奏效。所以,我在 * 上发布这个问题的目的是双重的。首先,如果他/她试图将许多数据框放入 excel 的单个工作表中,我希望这会对某人有所帮助。
其次,有人可以帮我理解这两个代码块之间的区别吗?在我看来,它们几乎相同,除了第一个代码块预先创建了名为“验证”的工作表,而第二个则没有。我明白那部分。
我不明白为什么它应该有所不同?即使我不提前创建工作表,这一行,最后一行的前一行,
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)
无论如何都会创建一个工作表。因此,当我们到达最后一行代码时,工作表“验证”也已在第二个代码块中创建。所以,我的问题基本上是,为什么第二个代码块应该工作而第一个不工作?
如果有其他方法可以使用内置的 df.to_excel 功能将许多数据框放入 excel 中,请分享!
【问题讨论】:
标签: python excel pandas dataframe xlsxwriter