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