「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。
前面我们学习了处理重复值、缺失值的方法,今天我们来了解一下异常值常用的处理方法,异常值是与其他观测值或预期数值有明显差别的值。先构造一个含有异常值的DataFrame,就是在一堆数据中放几个特别显眼的数据。
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,'a',3],[2,5,3]],columns = ['a','b','c'])
print(data)
可以看到,出现了一个a,是比较明显的差异值,那么我们怎么用python来检查出异常值呢?
通常由两种方法,先说第一种,箱体图,是DataFrame的boxplot()函数,我们来试试怎么用吧!
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,'a',3],[2,5,3]],columns = ['a','b','c'])
data.boxplot()
显然,这种方法对类型异常是没有作用,我们试试另一个数据:
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,1000,3],[6000,5,3]],columns = ['a','b','c'])
data.boxplot()
a,b列中都有异常值。6000和1000.
另外一个检查异常值的方法就是利用标准差来检测。这里用到的是数学里的正态分布,也叫高斯分布。我并不熟练,所以只能告诉大家有这么一个方法。如果数据服从正态分布,在3原则下,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。当然如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。
想想我们这两天学习的处理重复值、缺失值和异常值的方法,到底用来干什么的呢?是为了将数据标准化(也叫数据归一化),为了消除不同特征变量对整体造成过大影响。