首页 > 解决方案 > 检测df中的异常值

问题描述

我有几列和数百行的数字数据集,看起来类似于:

a   |  b  |  c  |  d
1   |  3  |  .3 |  26
.02 | 32  |  5  |  2.6

我正在尝试使用 检测异常值std,我发现了以下代码:

df.a[((df.a - df.a.mean()) / df.a.std()).abs() > 2]

哪个是我想要的单列,我希望能够df在一个循环中完成它?每列都有不同的meanstd。这可能很简单,但我对这一切都很陌生。如果可以将异常值显示df为值和其他单元格(无异常值)Nan0

提前谢谢了。

标签: pythonpandasoutliers

解决方案


试试下面的代码:

for col in df.columns:
    df[col] = df[col][((df[col] - df[col].mean()) / df.[col].std()).abs() > 2]

推荐阅读