码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-02-27 13:15:49      阅读:675      评论:0      收藏:0      [点我收藏+]

标签:公式   port   判断   plain   data   距离   循环   col   core   

 

判断异常值方法: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 方法判断异常值

标签:公式   port   判断   plain   data   距离   循环   col   core   

原文地址:https://www.cnblogs.com/ykit/p/12371461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!