数据清洗
导图
插值法介绍
(1)拉格朗日插值法
python 的Scipy库提供
代码:
import pandas as pd
from scipy.interpolate import lagrange
inputfile=""
outputfile=""
data=pd.read_excel(inputfile)
#过滤异常值,将其变为空值
#得到过滤数据的索引
row_indexs=(data[u'row']条件|data[u'row']条件)
#过滤空值
data.loc[row_indexs,u'row']=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_excel(outputfile)
(2)牛顿插值法
需要另写,具有承袭性和易于变动节点的特点
(3)Hermite插值
(4)分段插值
(5)样条插值
2.异常值处理
1.删除有异常值的记录
2.视为缺失值
3.平均值修正
4.不处理
具体情况具体分析
三、数据变换
1.简单函数变换
原始数据进行数学函数变换,平方、开方、取对数、差分运算。用来将不具有正太分布的数据变换成具有正太性的数据。
时间序列分析中,对数变换或者差分运算可以将非平稳序列转换为平稳序列。