了解python中的mask函数

时间:2019-05-26 02:19:36

标签: python

嗨,有人可以告诉我以下代码的含义吗?

df.mask(df.sub(df.mean()).div(df.std()).abs().gt(2))

我想做的是用NaN值替换异常值。这是我找到的,但我不清楚它的作用

1 个答案:

答案 0 :(得分:2)

有很多链接的方法调用。

基本上,它计算df的每一列的平均值,然后从相应列的元素中减去该平均值。然后,它计算标准偏差,并再次将其除以列。最后,它将所有大于2的值都屏蔽(转换为nan)。

此过程称为“标准化”-根据标准偏差将值转换为距均值距离的倍数。大概是在这里,我们考虑所有大于两个标准差的离群值,并将其从数据集中删除。

但是,也许将操作符和方法调用混合在一起的类似代码可能更具可读性……?

df.mask(((df - df.mean()) / df.std()).abs() > 2)