1 #拉格朗日插值法
2 import pandas as pd
#导入模块
3 from scipy.interpolate
import lagrange
4
5 inputfile = r
'M:\pycache\pythonData\pythondata\chapter4\chapter4\demo\data\catering_sale.xls'
6 outputfile =r
'M:\pycache\pythonData\pythondata\chapter4\chapter4\demo\tmp\sales.xls' #输入输出数据
7
8 data =
pd.read_excel(inputfile)
9 data[u
'销量'][(data[u
'销量']<400) | (data[u
'销量']>5000)] = None
#过滤数值,将其变为空值
10
11 #定义列向量插值函数
12 #S为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
13
14 def ployintterp_column(s,n,k=5
):
15 y = s[list(range(n-k,n))+list(range(n+1,n+1+
k))]
16 y = y[y.notnull()]
#剔除空值
17 return lagrange(y.index,list(y))(n)
#插值并返回插值结果
18 #逐个元素判断是否需要插值
19 for i
in data.columns:
20 for j
in range(len(data)):
21 if (data[i].isnull())[j]:
22 data[i][j] =
ployintterp_column(data[i],j)
23
24 data.to_excel(outputfile)
转载于:https://www.cnblogs.com/chauncy/p/5568266.html
相关资源:拉格朗日插值法c语言版