在数据集中如果某一个观察值不寻常地大于或者小于该数据集中的其他数据,我们则称之为疑似异常值。疑似异常值的存在,会对随后的计算结果产生不适当的影响,检测疑似异常值并加以适当的处理是十分必要的。
一种经典的计算数据集中疑似异常值的方法是Tukey method。该方法先计算出数据集的四分之一分位数(Q1)和四分之三分位数(Q3),从而计算出四分位数间距(IQR),然后将小于Q1 - 1.5IQR
或者大于Q3 + 1.5IQR
的数据点当做是疑似异常值。我们可以借助这种方法在DataFrame中检测异常值。代码如下:
import numpy as np
from collections import Counter
# Outlier detection
def detect_outliers(df, n,