数据预处理|数据清洗|使用Pandas进行异常值清洗
使用Pandas进行异常值清洗
异常值是指那些在数据集中存在的不合理的值,这里所说不合理的值是偏离正常范围的值,不是错误值。异常值的存在会严重干扰数据分析的结果。
1. 异常值检测
1.1 简单统计分析
最常用的统计量是最大值和最小值,用来判断这个变量的取值是否超出合理的范围。如电商信息表中客户年龄age=199,则该变量的取值存在异常。
- 例1. 计算成年人的身高、体重公式为:Y=(X-100)×1.2,其中X为身高(cm),Y为标准体重(kg)。
import matplotlib.pyplot as plt
import numpy as np
#假设成年人(18岁以上)正常高度在1.4米至2.0米
x=np.arange(140,200,5)
y=(x-100)*1.2
plt.rcParams['font.family']='STSong' #图形中显示汉字
plt.rcParams['font.size']=10
plt.title('身高和体重')
plt.plot(x,y,'.')
plt.plot(150,187,'r.') #异常值
plt.plot(166,212,'r.') #异常值
plt.plot(187,208,'r.')
plt.show()
1.2 散点图方法
通过数据分布的散点图可以检测异常数据。
- 例2. 分析房屋面积和房屋价格的关系示例。
import matplotlib.pyplot as plt
import numpy as np
x = [225.98,247.07,253.14,254.85,241.58,
301.01,20.67,288.64, 163.56,120.06,
207.83,342.75,147.9,53.06,224.72,
29.51,21.61,483.21, 245.25,
299.25,343.35] #房屋面积数据
y = [196.63,203.88,210.75,372.74,202.41,
347.61,24.9,239.34, 140.32,304.15,
176.84,488.23