拉格朗日插值法
拉格朗日插值法是插值法中的一种,是用来进行缺失值处理的,将数据集中的未知值,通过拉格朗日插值法推算出来。这里的数学知识就不介绍了,主要介绍在代码中怎么应用。
下面以某餐厅一段时间的销售量的数据集来演示使用方法:
首先最开始的数据如下:
可以看到2月14号这一天的数据是缺失了的,而且还有一部分数据明显是异常的,下面我们就要将缺失的值补上,以及将异常值也变为空补上。
import pandas as pd
from scipy.interpolate import lagrange #导入拉格朗日插值函数
#输入、输出路径
input_file = 'G:\data\Python\chapter4\demo\data\catering_sale.xls'
output_file = 'G:/data/Python/chapter4/demo/tmp/sale.xls'
#读取数据
data = pd.read_excel(input_file)
data['销量'][(data['销量'] < 400) | (data['销量'] > 5000)] = None
#自定义列向量插值函数
#s为列向量, n为被插值的位置,k为取前后的数据个数
def polyinterp_column(s,n,k=5):
y = s[list(range(n-k,n)) + list(range(n+1,n+1+k))] #取数
y = y[y.notn