如何用python删除异常值,python剔除异常数据

  如何用python删除异常值,python剔除异常数据

  数据清理python有三种处理缺失值的方法:删除、不处理和插值数据。

  有五种数据插值:

  1)通过平均值、中值和众数进行插值

  2)使用固定值进行插值

  3)最近插值

  4)回归方法

  5)插值法

  主要的插值方法有jxdgb插值、拉格朗日插值多项式插值、埃尔米特插值、分段插值、样条插值等。

  本文主要介绍拉格朗日插值多项式:

  对数学得好的可以看看拉格朗日插值多项式的数学公式,不感兴趣的可以跳过后续的python代码。

  拉格朗日插值多项式是以18世纪法国数学家约瑟夫拉格朗日的名字命名的多项式插值方法。拉格朗日插值多项式可以找一个多项式,这个多项式正好取每个观测点的观测值。

  从数学上讲,对于平面上已知的n个点,可以求出一个n-1次多项式y=a _ { 0 } a _ { 1 } x a _ { 2 } x 2.a _ {n-1} x n-1,这样多项式曲线就可以通过这n个点,从而找出缺失的值并补上。

  已知的n点n-1次多项式为:y=a _ { 0 } a _ { 1 } x a _ { 2 } x 2 a _ { n-1 } x n-1。

  代入n个点的坐标(x _ {1},y _ {1}),(x _ {2},y _ {2}),(x _ {n},y _ {n})转换成多项式函数,并得到

  y _ { 1 }=a _ { 0 } a _ { 1 } x _ { 1 } a_{2}x_{1}^2 a_{n-1}x_{1}^n-1

  y _ { 2 }=a _ { 0 } a _ { 1 } x _ { 2 } a_{2}x_{2}^2 a_{n-1}x_{2}^n-1

  y _ { n }=a _ { 0 } a _ { 1 } x _ { n } a_{2}x_{n}^2 a_{n-1}x_{n}^n-1

  求解拉格朗日插值多项式,如下所示:

  l(x)=y _ { 1 } \ frac {(x-x _ { 2 })(x-x _ { 3 })(x-x _ { n })} {(x _ { 1 }-x _ { 3 })(x _ { 1 }-x _ { n })} y _ { 2 } \ frac {(x-x _ { 2 })(x-x _ { 3 })(x-x _ { n })} {(x _)

  将缺失值的函数值对应的点代入插值多项式,即可得到趋势值的近似值L(x)。

  接下来是本文的核心部分,好累。

  #拉格朗日插值代码

  导入熊猫作为pd #导入数据分析库熊猫

  来自scipy。插值导入拉格朗日#导入拉格朗日插值函数

  Inputfile=path #销售数据路径

  Outputfile=path #输出数据路径

  Data=pd.read_excel(inputfile) #读入数据

  #自定义列向量插值函数

  #s是列向量,n是插值位置,k是取前后的数据个数。默认值为5。

  def poly interp _ column(s,n,k=5):

  Y=s [list (range (n-k,n)) list (range (n1,n1k)),fetch

  Y=y[y.notnull()] #消除空值

  Return lagrange (y.index,list (y)) (n) #插值并返回插值结果。

  #逐个元素地确定是否需要插值。

  对于数据列中的I:

  对于范围内的j(len(data)):

  If (data[i].isnull())[j]: #空则插值。data[I][j]=poly interp _ COLUMN(data[I],j) data.to _ excel(输出文件)#输出结果并写入文件

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: