**
真正解决Pandas写入excel的多sheet问题
**
遇到需要利用pandas的to_excel()在同一个Excel文件中,循环在不同的sheet中写入数据,但查阅大量资料,基本都无法利用for循环,在“sheet1、sheet2、sheet3、。。。。。”中写入,后终于发现是程序语言的顺序问题,具体如下:
网上主流的方法——虽然没错,但很笨
writer=pd.ExcelWriter(‘filename.xlsx’)
df1.to_excel(writer,sheet_name=‘第一表’,index=0) #写第一张sheet,名字叫第一表
df2.to_excel(writer,sheet_name=‘第二表’,index=0) #写第二张sheet,名字叫第二表
writer.save()
writer.close()
网上很多人还解释需要同时写df1、df2等等。。。
但我想写成sheet1、sheet2.。。。。,要写1千多张表,总不能写1千个表名吧。。。
实际该问题的原因,重点就在于什么时候写writer
给出一个在极为隐秘的博客上的模板:
writer = pd.ExcelWriter('filename.xlsx') #重点1:writer不能在下面的for循环中
counter=0
for sy in range(1,10):
counter=counter+1
data = pd.DataFrame(c)
data.to_excel(writer, 'sheet'+str(counter))
writer.save() #重点2:save不能在for循环里
writer.close()
按照上述模板套用,亲测完全可以实现写在不同的sheet中,其本质就是:只能生成一个writer,并最终保存1次,即可。。。