我有一个样本数据框,其中有两个异常值。
import pandas as pd
import random as r
import numpy as np
d = [10,5,9,-300,7,8,2000,6,4]
df = pd.DataFrame({'Values': d})
df的输出是
Values
0 10
1 5
2 9
3 -300
4 7
5 8
6 2000
7 6
8 4
这里有2个异常值
[-300, 2000]
我正在使用遮罩来处理这些离群值
for item in df:
df[item]=df[item].mask((df[item] - df[item].mean()).abs()> 1.5 * df[item].std())
输出
Values
0 10.0
1 5.0
2 9.0
3 -300.0
4 7.0
5 8.0
6 NaN
7 6.0
8 4.0
我们可以看到负值为-300的离群值仍然存在。 该如何处理?