使用Z標准化得到的閾值作為判斷標准,標准化后的得分超過閾值則為正常:
import pandas as pd #生成異常數據 df = pd.DataFrame({'col1':[1,120,3,5,2,12,13], 'col2':[12,17,31,53,22,32,43]}) print(df)#打印輸出 #通過Z-Score方法判斷異常值 df_zscore = df.copy()#復制一個來存儲Z-score得分的數據框 cols = df.columns #獲得數據框的列名 for col in cols:#循環讀取每列 df_col = df[col]#得到每列的值 z-score = (df_col-df_col.mean())/df_col.std()#計算每列的Z-score得分 df-zscore[col] = z_score.abs() > 2.2 #判斷Z-score得分是否大於2.2,如果得分為Ture,否則為False print(df_zscore)