在df中检测离群值

时间:2018-06-27 08:26:03

标签: python pandas outliers

我有几列和几百行的数字数据集,看起来像这样:

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

非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试以下代码:

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