python异常值处理四分位法_Python清除异常值四分位法

看了https://blog..net/zhuiqiuuuu/article/details/82721935 这篇文章,但是因为用不到pd,所以改了改。

先上代码

# Outlier detection

import numpy as np

def detect_outliers2(df):

outlier_indices = []

# 1st quartile (25%)

Q1 = np.percentile(df, 25)

# 3rd quartile (75%)

Q3 = np.percentile(df, 75)

# Interquartile range (IQR)

IQR = Q3 - Q1

# outlier step

outlier_step = 1.5 * IQR

for nu in df:

if (nu < Q1 - outlier_step) | (nu > Q3 + outlier_step):

df.remove(nu)

return df

if __name__ == '__main__':

df = [-3331,2,3,4,11111]

Outliers_to_drop = detect_outliers2(df)

# Drop outliers

print(Outliers_to_drop)

输出:[2, 3, 4]

效果描述:将输入的df清除异常值

理论:

首先计算出第一四分位数(Q1)、中位数、第三四分位数(Q3)。

中位数我们都知道,就是将一组数字按从小到大的顺序排序后,处于中间位置(也就是50%位置)的数字。

同理,第一四分位数、第三四分位数是按从小到大的顺序排序后,处于25%、75%的数字。

令 IQR=Q3−Q1IQR=Q3−Q1 ,那么 Q3+1.5(IQR)Q3+1.5(IQR) 和 Q1−1.5(IQR)Q1−1.5(IQR) 之间的值就是可接受范围内的数值,这两个值之外的数认为是异常值。

抄袭一张图:

8b08fb8b06ea688d2b45a6edad145148.png

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值