Python数据处理:五分钟搞定异常值和重复值

时间:2024-04-01 16:24:15

一、异常值

处理异常值之前,需要明确哪些是异常值。有很多种规则和方法来筛选异常值,这里我们以Z标准化得到的阈值作为判断标准。

利用正态分布定位异常值

Z标准化会将数据转换为标准差为1,均值为0且符合正态分布的数据序列,一般来说,99%以上的数据都聚集在均值周围三个标准差距离范围内。这里我们以两个标准差为界,超出则算作异常值。

z标准化的公式为:

Python数据处理:五分钟搞定异常值和重复值

 

Python数据处理:五分钟搞定异常值和重复值

 

Python数据处理:五分钟搞定异常值和重复值

 

可以看到,在第一列中,最后一个数字150距离均值超过了两个标准差,符合异常值的标准。

有些时候,在不清楚用什么边界来判断异常值时,我们也可以使用一些数学模型来判断异常值,比如聚类算法。

定位了异常值之后,常见的处理有删除或者使用边界值、均值等来替换。

二、重复值

重复值也会对我们的分析造成困扰。在pandas中,我们可以使用duplicated()方法来定位重复值,使用drop_duplicated()方法来删除重复数据。

在删除重复数据时,我们可以指定是根据其中的一列来判断重复还是根据多列判断重复。当我们指定多列时,只有当每一列的取值都相同时才会被认为是重复数据。

Python数据处理:五分钟搞定异常值和重复值

 

需要注意的是,重复数据并不总是没有意义的,也并不总是需要删除的。需要根据实际应用场景来判断到底执行什么操作。