python数据预处理之异常值、缺失值处理方法

     

欢迎关注微信公众号:开心数据

数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础、花费时间较长的工作。除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类数据经常出现错误值、缺失值和异常值。

一、异常值

       异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称离群点,异常值的分析也称为离群点的分析。

       常用的异常值分析方法为3σ原则、箱型图分析、机器学习算法检测,一般情况下对异常值的处理都是删除和修正填补,即默认为异常值对整个项目的作用不大,只有当我们的目的是要求准确找出离群点,并对离群点进行分析时有必要用到机器学习算法,其他情况下不用费精力去分析他们,今天不讨论基于机器学习算法的离群点检测和分析,改天单独出一个。

1、3σ原则

       如果数据服从正态分布,异常值被定义为一组测定值中与平均值的偏差超过3倍的值 → p(|x - μ| > 3σ) ≤ 0.003

首先创建数据 

对数据进行正态性检验,p值为0.63,远远大于 0.05,认为服从正态分布。

接下来绘图查看数据和异常值

#绘制数据密度曲线
fig= plt.figure(figsize=(10,6))
ax1=fig.add_subplot(2,1,1)
data.plot(kind='kde',style='--k',grid=True,title='密度曲线')
plt.axvline(3*std,hold=None,linestyle='--',color='r')
plt.axvline(-3*std,hold=None,linestyle='--',color='r')


#筛选出异常值和正常值
error = data[np.abs(data - u) > 3*std]
data_c = data[np.abs(data - u) <= 3*std]
ax2=f
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值