[英]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.