學(xué)習(xí)Python數(shù)據(jù)分析挖掘?qū)崙?zhàn)一書時(shí),在數(shù)據(jù)預(yù)處理階段,有一節(jié)要使用拉格朗日插值法對缺失值補(bǔ)充,代碼如下:
#-*- coding:utf-8 -*-import pandas as pdimport matplotlib.pyplot as pltfrom scipy.interpolate import lagrange#導(dǎo)入拉格朗日插值函數(shù)inputfile="catering_sale.xls"outputfile="H:/python/file/python_data_annalysis_mining/chapter04/sales.xls"data=pd.read_excel(inputfile,sheetname=0)statistic=data.describe()#保存基本統(tǒng)計(jì)量print statistictime=data[u'日期'].valuesnumber=data[u'銷量'].valuesplt.scatter(time,number)plt.show()#根據(jù)散點(diǎn)圖找過濾異常值的方法data[u'銷量'][(data[u'銷量']<300)|(data[u'銷量']>6000)]=None#過濾異常值,設(shè)置為空#自定義列向量插值函數(shù)#s為列向量,n為插值位置,k為取前后的數(shù)據(jù)個(gè)數(shù),默認(rèn)為5,不宜太多,受到數(shù)值不穩(wěn)定性影響def ployinterp_column(s,n,k=5): y=s[list(range(n-k,n))+list(range(n+1,n+1+k))] y=y[y.notnull()]#剔除異常值 return lagrange(y.index,list(y))(n)#插值并返回插值結(jié)果for i in data.columns: for j in range(len(data)): if(data[i].isnull())[j]: data[i][j]=ployinterp_column(data[i],j)data.to_excel(outputfile)
1.import xlwt 錯(cuò)誤
這個(gè)問題比較簡單,只需要在官網(wǎng)上下載安裝或者直接在編譯器中運(yùn)行如下代碼即可,
pip install xlwt
2.to_excel錯(cuò)誤
這個(gè)錯(cuò)誤是由于下面這句代碼引起的,
data.to_excel(outputfile)
錯(cuò)誤描述:無效的模式('w+b')或者文件名,意思是,出現(xiàn)這個(gè)問題的原因可能有兩個(gè),outputfile這個(gè)文件不可寫入(w是“寫”的意思),或者打開模式不對(b是以二進(jìn)制方式寫);另一種錯(cuò)誤,文件名出錯(cuò),很有可能是路徑有問題,經(jīng)過檢查,確實(shí)是路徑的問題,代碼如下:
outputfile="H:/python/file/python_data_annalysis_mining/chapter04/sales.xls"
改為如下代碼即可:
outputfile="H://python//file//python_data_annalysis_mining//chapter04//sales.xls"
即把單斜杠改為雙斜杠,,因?yàn)榇嬖谵D(zhuǎn)義問題。
以上這篇解決Python pandas df 寫入excel 出現(xiàn)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選