拉格朗日插值法、数据规范化

本文介绍了拉格朗日插值法在处理数据缺失值中的应用,通过实例展示了如何用该方法补全数据并修正异常值。同时,文章探讨了数据规范化的重要性,列举了三种常见的规范化方法,包括最小-最大规范法、零-均值规范法和小数定标规范法,并通过代码展示了小数定标规范化处理的效果。

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

拉格朗日插值法

拉格朗日插值法是插值法中的一种,是用来进行缺失值处理的,将数据集中的未知值,通过拉格朗日插值法推算出来。这里的数学知识就不介绍了,主要介绍在代码中怎么应用。
下面以某餐厅一段时间的销售量的数据集来演示使用方法:
首先最开始的数据如下:
在这里插入图片描述
可以看到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.notnull()] #剔除空值
    return lagrange(y.index,list(y))(n)

#逐个元素判断是否需要插值
for i in data.columns:
    for j in range(len(data)):
        if (data[i].isnull())[j]:  #为空则插值
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值