使用 Seaborn 绘制箱线图后如何删除异常值?

How to delete outliers after plotting a boxplot with Seaborn?

我正在尝试从我的数据集中删除离群值。

以下是箱线图:

如何获取胡须末端的值?

假设: min 的值为:0 我的第 25 个四分位数的值为:125 我的第 75 个四分位数的值为:1938 max 的值为:113499

我试过类似下面的方法,但不确定是否正确:

clean_model.drop(clean_model[clean_model.num_likes > (1938 + (1.5* (1938-125)))].index, inplace=True)

计算(1938 + (1.5* (1938-125))) 是否正确,以获得图中点的值?

下面是我的数据框的描述:

你的计算是正确的。晶须长度计算为一些 'whisker' 因子(在 matplotlib / seaborn 中默认为 1.5)乘以四分位数间距 (iqr)。

例如使用numpy.percentile

import numpy as np

p_25, p_75 = np.percentile(clean_model['num_likes'], [25, 75])
iqr = p_75 - p_25

upper_bound = p_75 + 1.5 * iqr
lower_bound  = p_25 - 1.5 * iqr

scipy.stats 还有一个方便的函数 iqr 你可以使用:

from scipy.stats import iqr

_iqr = iqr(clean_model['num_likes'])