在python中添加带有for循环的新excel表

Posted

技术标签:

【中文标题】在python中添加带有for循环的新excel表【英文标题】:Add new excel sheets with a for loop in python 【发布时间】:2018-03-18 10:13:12 【问题描述】:

以下问题:for 循环的每次迭代都应将新工作表添加到现有 Excel 工作簿。在同一迭代中,必须将 pandas 系列写入此工作表。最后必须有一个包含多个工作表的 excel 文件,每个工作表包含一个熊猫系列。我正在尝试:

from pandas import Series
for counter in range(n):
   sheet_name = 'Sheet%s' % counter
   series.to_frame(name = '').to_excel('output.xls', sheet_name=sheet_name)

不幸的是,这段代码每次迭代都会生成一个新的 Excel 工作簿。结果,里面只有一张纸。请帮忙,我完全不知道。

【问题讨论】:

【参考方案1】:

根据documentation,可以传入一个已有的ExcelWriter对象:

如果传递一个现有的 ExcelWriter 对象,那么工作表将是 添加到现有工作簿。这可以用来保存不同的 DataFrames 到一个工作簿:

>>> writer = pd.ExcelWriter('output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Sheet2')
>>> writer.save()

所以,这应该可行:

from pandas import Series, ExcelWriter

writer = ExcelWriter('output.xls')
for counter in range(n):
   sheet_name = 'Sheet%s' % counter
   series.to_frame(name = '').to_excel(writer, sheet_name=sheet_name)

writer.save()

【讨论】:

以上是关于在python中添加带有for循环的新excel表的主要内容,如果未能解决你的问题,请参考以下文章

在不同的Excel工作表Python中显示错误的结果

Python:循环遍历 Excel 工作表,将标题信息分配给每个工作表上的列,然后合并到一个文件

Python:将图像和数据帧写入同一个 excel 文件

如何通过带有for循环的字典(python)设置实例的属性

在 IMPALA/HIVE 中添加带有 SELECT 的新列后,旧表数据变为 NULL

如何使用微软互操作将工作表开头的新列添加到现有 excel