2
替换中的所有列的离群值我有3列的数据帧,用于离熊猫:与楠
c1,c2,c3
10000,1,2
1,3,4
2,5,6
3,1,122
4,3,4
5,5,6
6,155,6
我想要替换异常值在所有这些是外2西格玛的列。使用下面的代码,我可以创建一个没有异常值的数据框。
df[df.apply(lambda x: np.abs(x - x.mean())/x.std() < 2).all(axis=1)]
c1,c2,c3
1,3,4
2,5,6
4,3,4
5,5,6
我可以分别找到每个列的异常值,并与“南”代替,但不会是在与列数的增加代码的行数的最佳方式。必须有更好的方式来做到这一点。可能是上述命令的布尔输出行,然后用“nan”替换“TRUE”。
任何建议,非常感谢。
你能确切地解释你的问题是什么?顺便说一句,你可以摆脱apply - 'df [df.sub(df.mean())。abs()。div(df.std())。(2).all(1)]' –
我想用“nan”代替数据帧中的所有异常值(2 sigma范围以外)。如果不具备应用功能,则必须分别为每个列执行此操作。 – Sridhar