数据预处理

您所在的位置:网站首页 缺失数据的插值处理 数据预处理

数据预处理

2023-07-17 04:01| 来源: 网络整理| 查看: 265

文章目录 1.拉格朗日差值法2.牛顿差值法3.注意

数据链接,密码为1234 1.拉格朗日差值法

在这里插入图片描述   python中的scipy库提供了拉格朗日差值法的函数,直接调用 案例

import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.interpolate import lagrange cat_sale = pd.read_excel('data/catering_sale.xls') cat_sale.drop('日期', axis=1, inplace=True) # 过滤异常值,并置为空值 cat_sale['销量'][(cat_sale['销量'] 5000)] = np.NAN # 自定义列向量插值函数 def ployinterp_columns(s, n, k=4): if n len(s) - k - 1: y = s[list(range(n - k, n)) + list(range(n + 1, len(s)))] else: y = s[list(range(n - k, n)) + list(range(n + 1, n + k + 1))] # 取空值处的前后3个数 y = y[y.notnull()] # 剔除空值 return lagrange(y.index, list(y))(n) # 插值并返回插值结果 # 逐个判断元素是否需要插值 for i in cat_sale.columns: for j in range(len(cat_sale)): if (cat_sale[i].isnull())[j]: # 如果为空则插值 print(ployinterp_columns(cat_sale[i], j)) cat_sale[i][j] = ployinterp_columns(cat_sale[i], j) cat_sale.to_csv('sales.csv') # 输出结果,写入文件

在这里插入图片描述

2.牛顿差值法

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 python实现

import numpy as np import pandas as pd cat_sale = pd.read_excel('data/catering_sale.xls') cat_sale.drop('日期', axis=1, inplace=True) # 过滤异常值,并置为空值 cat_sale['销量'][(cat_sale['销量'] 5000)] = np.NAN # 分别定义求插商与求w的函数 def cal_f(x, y): """ 计算插商 """ f0 = np.zeros((len(x), len(y))) # 定义一个存储插商的数组 for k in range(len(y) + 1): # 遍历列 for i in range(k, len(x)): # 遍历行 if k == 0: f0[i, k] = y[i] else: f0[i, k] = (f0[i, k - 1] - f0[i - 1, k - 1]) / (x[i] - x[i - 1]) print('差商表', '\n', f0) return f0 def newton(x, y, x_j): """ 牛顿差值多项式 """ f0 = cal_f(x, y) # 计算插商 f0 = f0.diagonal() # 与w相乘 f1 = 0 for i in range(len(f0)): s = 1 k = 0 while k


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3