我有几列和几百行的数字数据集,看起来像这样:
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
做它?每列都有不同的mean
和std
。这可能很简单,但对于所有这些我还是很陌生的。是否可以将df
中的异常值显示为值,是否可以将其显示为其他单元格中的值(没有异常值)Nan
或0
?
非常感谢。
答案 0 :(得分:1)
尝试以下代码:
for col in df.columns:
df[col] = df[col][((df[col] - df[col].mean()) / df.[col].std()).abs() > 2]