用Seaborn绘制箱形图后如何删除离群值?

时间:2018-12-20 14:14:18

标签: pandas statistics seaborn boxplot outliers

我正在尝试从数据集中删除异常值。

以下是箱线图:boxplots

如何获得晶须末端的价值?

让我们说: 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)))对吗,得到图中点的值?

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

describe dataframe

1 个答案:

答案 0 :(得分:0)

您的计算是正确的。晶须长度的计算方式是一些“晶须”因子(在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'])