标签:
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)
标签:
原文地址:http://www.cnblogs.com/chauncy/p/5568266.html