如何用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
,sheet3
3张表单。这里的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())
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内容如下:
保存结果展示:
Original: https://blog.csdn.net/qq_39622152/article/details/116067953
Author: Sieburg_Shen
Title: Python 如何写入同一Excel的多张Sheet表单
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676499/
转载文章受原作者版权保护。转载请注明原作者出处!