數據預處理 | 通過 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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM