机器学习之数据预处理——缺失值

机器学习之数据预处理——缺失值

本文先给大家介绍Pandas进行数据预处理会用到哪些方法,之后再介绍缺失值的处理方法。

1.Pandas基础

import pandas as pd
df1=pd.read_csv(r'miss.csv',encoding='gbk')

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
2.数据预处理——缺失值处理

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

import pandas as pd
import numpy as np
#生成服从“0~1”均匀分布的随机样本值
df=pd.DataFrame(np.random.randn(7,3))
df.loc[0:4,1]=np.NaN#构造缺失值
df.loc[0:2,2]=np.NaN#构造缺失值

在这里插入图片描述

#使用常数值来填充缺失值
df.fillna(0)
#使用变量来填充缺失值
a=1
df.fillna(a)
#使用特定字符来填充缺失值
df.fillna('unknown')

在这里插入图片描述

#参考上一行的值填充,设定填充几个
df.fillna(method="ffill")
df.fillna(method="ffill",limit=2)

在这里插入图片描述

#参考下一行的值填充,设定填充几个
df.fillna(method="bfill")
df.fillna(method="bfill",limit=2)

在这里插入图片描述

#使用属性的平均值来填充缺失值
df.fillna({1:np.mean(df.loc[0:6,1]),2:np.mean(df.loc[0:6,2])})

3.数据预处理——插值法

在这里插入图片描述

import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randn(7,3),columns=("one","two","three"))
df.loc[1:4,"one"]=np.NaN#构造缺失值
df.loc[1:2,"two"]=np.NaN#构造缺失值
df.interpolate()

在这里插入图片描述

#插值法填充缺失值(前一个值和后一个值得平均数)
df.interpolate(method='values')

在这里插入图片描述

#如果index是时间
df.index=pd.date_range('20201001',periods=7)
df.interpolate(method='time')

在这里插入图片描述

import numpy as np
from scipy import interpolate
import pylab as pl

x=np.linspace(0,10,11)
#x=[  0.   1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]
y=np.sin(x)
xnew=np.linspace(0,10,101)
pl.plot(x,y,"ro")

for kind in ["nearest","zero","slinear","quadratic","cubic"]:#插值方式
    #"nearest","zero"为阶梯插值
    #slinear 线性插值
    #"quadratic","cubic" 为2阶、3阶B样条曲线插值
    f=interpolate.interp1d(x,y,kind=kind)
    # ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of first, second or third order)
    ynew=f(xnew)
    pl.plot(xnew,ynew,label=str(kind))
pl.legend(loc="lower right")
pl.show()

在这里插入图片描述

下一节学习线性回归法填补缺失值和拉格朗日插值法

编写打磨课件不易,走过路过别忘记给咱点个赞,小女子在此(❁´ω`❁)谢过!如需转载请注明。

参考文献:

1.《对比EXCEL轻松学习Python数据分析》

2.《Python数据分析与数据化运营》

3.https://blog.csdn.net/oxuzhenyi/article/details/77971330


  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值