python 数据预处理(采用拉格朗日插值法处理缺失值)

本文介绍了一种使用拉格朗日插值法处理数据缺失值的方法,并通过具体的实例展示了如何利用该方法对缺失数据进行插补。采用拉格朗日插值法可以有效地填补缺失值,确保数据的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数据挖掘中,数据往往会存在不完整的情况,本文主要采用拉格朗日插值法处理缺失值。

拉格朗日插值法

定义:对于某个多项式函数,已知有给定的K+1个取值点:


其中x对应自变量的位置,y对应这函数在这个位置(每一个y值都不等于0)的取值。

解设任意两个不同的Xj都互不相同,对应的拉格朗日插值所得到的拉格朗日插值多项式为:



下面采用拉格朗日插值对缺失值进行插补,数据的形式如下:


从图片可以看出16的位置为空缺值,程序代码如下:

#coding:utf-8
import pandas as pd
from scipy.interpolate import lagrange#拉格朗日函数
data=pd.read_excel('data/catering_sale.xls')
#自定义列向量插值函数
def ploy(s,n,k=6):
    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]=ploy(data[i],j)
data.to_excel('data/1.xls')

使用缺失值前后6个未缺失的数据进行建模,结果如下:





评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值