数据预处理 | 通过 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)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步