我很好奇熊猫的数据处理方法是如何计算上下游的胡须,有异常值的。通常是1.5IQR-Q1, 1.5IQR+Q3。然而,我无法理解的问题,或者我可能是错的,如何计算胡须。它显示了https://pandas.pydata.org/pandas-docs/stable/visualization.html的‘ve绘图部分中的相同问题,下面是我随机选择的代码示例:
ray1=[0.217766,0.691315,0.289239,0.239135,0.161341,0.364297,0.373284,0.323216]
df = pd.DataFrame(ray1, dtype = float)如果我使用df.describe(),它会给我这个数组的统计数据。
count 8.000000
mean 0.332449
std 0.162374
min 0.161341
25% 0.233793
50% 0.306227
75% 0.366544
max 0.691315但根据上面的晶须,较低的晶须来自于正常的1.5IQR-Q1, 1.5IQR+Q3,它应该在.565和.035附近。如果我用df.boxplot()绘制这幅图,它会显示上面的晶须是0.373,下部的晶须是.161。我已经尝试过其他的变体(2.698σ)和奖品,而且它们也不相等。
那么,当存在异常值时,它是如何得到这些值的呢?
发布于 2018-08-03 09:32:43
为地块计算的晶须落在数据中的值上。由于您的数据只有8个值,所以可以很容易地将胡须的位置显示出来。
下面的代码生成您的盒图,并覆盖在上面的数据点。
df.boxplot()
plt.plot([1]*len(df),df[0],'x')
plt.show()情节是:

希望这是足够清楚的,看到上面的胡须落在一个数据点。
从文档:gen/matplotlib.pyplot.boxplot.html:“上晶须将扩展到最后的基准小于Q3 + whis*IQR”
https://stackoverflow.com/questions/48431774
复制相似问题