数据集
链接: https://pan.baidu.com/s/167OzcIWj82O37Hku6tIpDA 提取码: sq27
由于missing_data.xls数据中有部分缺失值,故需要对数据进行补全
这里采用拉格朗日插值法补全
代码如下
#拉格朗日插值法处理数据缺失值
import pandas as pd
from scipy.interpolate import lagrange#导入拉格朗日插值函数
inputFile = 'D:\下载\data\input\missing_data.xls'
outputFile = 'D:\下载\data\output\missing_data_processed.xls'
data = pd.read_excel(inputFile,header = None)#导入数据
'''
自定义列向量插值函数
s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
'''
def ployinterp_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]:#如果为空就插值
data[i][j] = ployinterp_column(data[i],j)
data.to_ex