数据清洗 | 通过 Z-Score 方法判断异常值
Posted ykit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗 | 通过 Z-Score 方法判断异常值相关的知识,希望对你有一定的参考价值。
代码演示
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 方法判断异常值的主要内容,如果未能解决你的问题,请参考以下文章