在这个简单的例子中,它给出了错误的最小和最大whis。
df = pd.DataFrame(np.array([1,2,3, 4, 5]),
columns=['a'])
df.boxplot()
结果。
按照常规公式(Q3 + 1.5 * IQR),应该是7和-1,但如图所示是5和1。如何才能改回标准?
Q1 = df['a'].quantile(0.25)
Q2 = df['a'].quantile(0.50)
Q3 = df['a'].quantile(0.75)
print(Q1,Q2, Q3)
IQR = Q3 - Q1
MaxO = (Q3 + 1.5 * IQR)
MinO = (Q1 - 1.5 * IQR)
print("IQR:", IQR, "Max:", MaxO, "Min:" ,MinO)
结果是:2.0 3.0 4.0
2.0 3.0 4.0
IQR: 2.0 最大:%: 7.0 最小:% -1.0
(Q1、Q2、Q3和IQR是正确的,但不是最小或最大)
从上四分位数以上,测量出1.5倍IQR的距离,并从数据集中画出一个须状物到落在这个距离内的最大观测点。同样,在下四分位数以下测量出1.5倍IQR的距离,并从数据集中画出一个须状物到落在这个距离内的较低观测点。所有其他观察点都被绘制为离群值。