数据清洗 | 通过 Z-Score 方法判断异常值

Posted ykit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗 | 通过 Z-Score 方法判断异常值相关的知识,希望对你有一定的参考价值。

 

判断异常值方法:Z-Score

计算公式 Z = (X-μ)/σ 其中μ为总体平均值,X-μ为离均差,σ表示标准差。z的绝对值表示在标准差范围内的原始分数与总体均值之间的距离。当原始分数低于平均值时,z为负,以上为正。

代码演示

1 生成一个 df

1 import pandas as pd  # 导入pandas库
2 # 生成异常数据
3 df = pd.DataFrame({col1: [1, 120, 3, 5, 2, 12, 13],
4                    col2: [12, 17, 31, 53, 22, 32, 43]})

 

2 通过Z-Score方法判断异常值

 1 df_zscore = df.copy()  # 复制一个用来存储Z-score得分的数据框
 2 cols = df.columns  # 获得数据框的列名
 3 
 4 for col in cols:  # 循环读取每列
 5     df_col = df[col]  # 得到每列的值
 6     z_score = (df_col - df_col.mean()) / df_col.std()  # 计算每列的Z-score得分
 7     # 判断Z-score得分是否大于2.2,(此处2.2代表一个经验值),如果是则是True,否则为False
 8     df_zscore[col] = z_score.abs() > 2.2  
 9 
10 print(df_zscore)  # 打印输出

 

3 删除异常值所在的行

  留下==False的,df_zscore[‘col1‘] == True 的就能丢掉了

1 df_drop_outlier = df[df_zscore[col1] == False]
2 print(df_drop_outlier)

 

以上是关于数据清洗 | 通过 Z-Score 方法判断异常值的主要内容,如果未能解决你的问题,请参考以下文章

数据清洗之异常值处理的常用方法(**盖帽法)

数据清洗之异常值处理的常用方法(**盖帽法)

python大数据挖掘系列之淘宝商城数据预处理实战

特征预处理

Pandas常用的数据清洗方法

数据分析:数据清洗步骤