簡體   English   中英

Function 替換 Python 中的異常值

[英]Function to replace outliers in Python

我需要創建一個 FUNCTION 以用該列的 Mean+/- 3* StandardDeviation 替換我的數據集列中的異常值

例如,如果值大於/小於 Mean+/- 3* StandardDeviation,則會識別異常值。

因此,如果 A 中的值假設 285 是上側的異常值,則需要將其替換為 Mean+ 3* StandardDeviation。 如果離群值位於下側,則需要將其替換為均值 - 3* 標准偏差。

這需要對所有列進行。

AB C

195 106 70

250 121 81

245 127 80

225 150 95

285 130 84

228 180 110

205 138 71

您可以借助map方法在內部由每行的每個元素調用,並進一步檢查 val 是否為異常值。 為此的代碼可以如下所示。

def replace_outlier(val, mean, std):
    if val > mean + 3*std:
        return mean + 3*std 
    elif val < mean - 3*std:
        return mean - 3*std
    return val

for col in df.columns:
    mean = df[col].mean()
    std_dev = df[col].std(axis=0)
    df[col] = df[col].map(lambda x: replace_outlier(x, mean, std_dev))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM