python输出异常值_如何计算Python中所有列的异常值?

类似于Romain X.'s answer,但操作的是数据帧而不是序列。

随机数据:np.random.seed(0)

df = pd.DataFrame(np.random.randn(100, 5), columns=list('ABCDE'))

df.iloc[::10] += np.random.randn() * 2 # this hopefully introduces some outliers

df.head()

Out:

A B C D E

0 2.529517 1.165622 1.744203 3.006358 2.633023

1 -0.977278 0.950088 -0.151357 -0.103219 0.410599

2 0.144044 1.454274 0.761038 0.121675 0.443863

3 0.333674 1.494079 -0.205158 0.313068 -0.854096

4 -2.552990 0.653619 0.864436 -0.742165 2.269755

四分位数计算:Q1 = df.quantile(0.25)

Q3 = df.quantile(0.75)

IQR = Q3 - Q1

以下是每一列的数字:((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).sum()

Out:

A 1

B 0

C 0

D 1

E 2

dtype: int64

根据seaborn的计算:

注意,sum((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR)))前面的部分是一个布尔掩码,因此可以直接使用它来删除异常值。这将它们设置为NaN,例如:mask = (df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))

df[mask] = np.nan

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值