Как удалить выбросы после составления графика с Seaborn? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь удалить выбросы из моего набора данных.

Вот поля: 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 голосов
/ 20 декабря 2018

Ваш расчет верен.Длина вискера рассчитывается как некоторый коэффициент «вискера» (по умолчанию 1,5 в matplotlib / seaborn), умноженный на межквартильный диапазон (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'])
...