小呆学数据分析——异常值判定与处理(一)

处理异常值的应用场景

在收集数据的过程中,可能由于人为录入错误等原因,会出现明显不合法的数据,需要在进一步分析之前对这些值进行判定并且处理,才能得到合理的数据分析和挖掘的结果。

预览

对异常值采用以下方案判定:

  1. 区间判定(普通统计量)
  2. 箱型图判定

对于异常值的处理遵照缺失值的处理方案。
*注:对于箱型图的相关知识请看。

例子

小呆被交代一项任务,统计一下这个星期各个洗发露的销量,小呆打开营销同事的记录本shampoo_sales.csv,看到
shampoo_sales.csv

品牌,日期,销量
沙宣,20190101,200
沙宣,20190102,185
沙宣,20190103,1000
沙宣,20190104,210
沙宣,20190105,201
沙宣,20190106,223
沙宣,20190107,195
···
沙宣,20190501,2000
···

怎么有些天销量这么高吗?我记得好像这星期都是正常的销售啊,肯定是登记的人搞错了。小呆想着怎么有哪些判定标准判断呢,要么用去年日销量最高判定,于是写下代码

import pandas as pd
sales = pd.read_csv('shampoo_sales.csv', encoding = 'gb2312')
sl = sales.set_index(['品牌', ' 日期'])
print(sl[sl['销量']>500])

结果显示

   品牌        日期     销量
沙宣  20190103  1000
     20190501  750

看来只有这两天可能是有点问题的。这样判定是不是有点武断啊,我用其他方法在试试看,于是小呆写下代码

import matplotlib.pyplot as plt
sl.plot.box(title = '销量')

结果如下:
箱型图
欸,这个好像和我在《商务与经济统计》上面学到的箱型图不太一样。小呆问小瓜。是的,在实际使用中的箱型图与书中的箱型图是不一样的,有空你看看我写的科普吧。
小呆看完,原来如此,在上界下界并不一定是正常值的最大值和最小值啊。怪不得上界到上四分位与下界到下四分位距离不一样长。
不过这样也可以判定这里有两个异常值嘛。
那该怎么处理他呢?小呆问小瓜,小瓜说当他不存在,应该怎么补就怎么补充吧
小呆回想了昨天的工作,用平均值补充吧,于是写下代码

sl[sl['销量']>500] = sl[sl['销量']<500].mean()

结果如下

              销量
品牌 日期           
沙宣 20190101  200
   20190102  185
   20190103  202.33333
   20190104  210
   20190105  201
   20190106  223
   20190107  195
   20190501  202.33333

嗯,搞定,小呆把结果交给老大。

文章导引列表:
机器学习

  1. 小瓜讲机器学习——分类算法(一)logistic regression(逻辑回归)算法原理详解
  2. 小瓜讲机器学习——分类算法(二)支持向量机(SVM)算法原理详解
  3. 小瓜讲机器学习——分类算法(三)朴素贝叶斯法(naive Bayes)
  4. 待续

数据分析

  1. 小呆学数据分析——使用pandas中的merge函数进行数据集合并
  2. 小呆学数据分析——使用pandas中的concat函数进行数据集堆叠
  3. 小呆学数据分析——pandas中的层次化索引
  4. 小呆学数据分析——使用pandas的pivot进行数据重塑
  5. 小呆学数据分析——用duplicated/drop_duplicates方法进行重复项处理
  6. 小呆学数据分析——缺失值处理(一)
  7. 小呆学数据分析——异常值判定与处理(一)
  8. 小瓜讲数据分析——数据清洗

数据可视化

  1. 小瓜讲数据分析——数据可视化工程(matplotlib库使用基础篇)
  2. 小瓜讲matplotlib高级篇——坐标轴设置(坐标轴居中、坐标轴箭头、刻度设置、标识设置)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的骆驼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值