繁体   English   中英

Dataframe 仅当它出现在每行的多个列上时才删除异常值 Python

[英]Dataframe Outlier removal only if it appears on multiple columns for each row Python

我有一个 DataFrame 有多个列,我想过滤每行至少有 3 列或更多列的异常值的所有行 我怎样才能做到这一点?

我使用了以下dataframe过滤方法:

df[df.apply(lambda x: np.abs(x - x.mean()) / x.std() < 3).all(axis=1)

但由于.all() function,即使只有单列具有异常值,它也会过滤行。

我们可以得到行上的布尔值和 select > 3的总和:

m = (df - df.mean()).abs().div(df.std()) < 3
df[m.sum(axis=1) > 3]

注意:我们不需要在这里申请。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM