用拉格朗日法进行插补

低调努力的骞哥 2017-11-20 08:33:46
import pandas as pd
from scipy.interpolate import lagrange
import matplotlib.pyplot as plt

inputfile = 'C:/Users/Qhy/Desktop/catering_sale.xls'
outputfile = 'C:/Users/Qhy/Desktop/sales.xls'

data = pd.read_excel(inputfile,index_col='日期')
data = pd.DataFrame(data)
data['销量'][(data['销量']<400)|(data['销量']>5000)] = None



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)



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)
...全文
120 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧