Python 如何写入同一Excel的多张Sheet表单

如何用python将数据存入同一个excel文件的多张sheet表单?

使用to_excel()保存表单时发生覆盖:

本想把三个数据表格保存到同一个excel的三个表单,只写了这三行
d1.to_excel(outputfile,sheet_name='Sheet1') d2.to_excel(outputfile,sheet_name='Sheet2') d3.to_excel(outputfile,sheet_name='Sheet3')
写完后打开excel发现只有最后一张表格被保存,前面两张都被覆盖了。

解决方法:

  • 先定义需要存入的excel路径,例如下面的outputfile为excel路径。路径前面加pd.ExcelWriter()括号里面写路径名。
  • 计算你需要的数据,比如我想计算d1,d2,d3,并且最后分别把这三个放入名字为normalization_data.xls的excel中的sheet1,sheet2,sheet33张表单。这里的sheet1,sheet2,sheet3可以是任意的名字,比如也可以叫A,B,C或者其他的。
  • 计算完成后,给每个数据都给使用DataFrame(),例如我写的d1=pd.DataFrame(d1)
  • 给每个数据都使用.to_excel('excel名称',sheet_name='表单名称')
  • 最后对excel进行保存和关闭outputfile.save()和outputfile.close()

注意事项

  • 写代码时候不一定一次就运行成功,每次运行时要把之前的excel表格关掉再运行,成功后再打开,否则无法写入。
import pandas as pd
import numpy as np

datafile='E:/计算机/数据挖掘/20210421/normalization_data.xls'#参数初始化
outputfile=pd.ExcelWriter('E:/计算机/数据挖掘/20210421/normalization_data(1).xls')#输出地址
data=pd.read_excel(datafile,header=None)#读取数据

#计算
d1=(data-data.min())/(data.max()-data.min())#min-max规范化
d2=(data-data.mean())/data.std()#零-均值规范化
d3=data/10**np.ceil(np.log10(data.abs().max()))#小数定标规范化

#保存
d1=pd.DataFrame(d1)
d2=pd.DataFrame(d2)
d3=pd.DataFrame(d3)
d1.to_excel(outputfile,sheet_name='Sheet1')
d2.to_excel(outputfile,sheet_name='Sheet2')
d3.to_excel(outputfile,sheet_name='Sheet3')
outputfile.save()
outputfile.close()

#成功提示
print("success!")

normalization_data.xls内容如下:

normalization_data

保存结果展示:

sheet1

sheet2
sheet3

  • 15
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值