Удаление или удаление выбросов после построения графика с помощью seaborn - PullRequest
0 голосов
/ 05 августа 2020

Я хочу удалить из своего набора данных только очень сильные выбросы. Я использовал этот код для построения выбросов:

def percentile_based_outlier(data, threshold):
    diff = (100 - threshold) / 2
    minval, maxval = np.percentile(data, [diff, 100 - diff])
    return (data < minval) | (data > maxval)

col_names = ['Pts/75', 'PlayVal', 'FTA/100', 'rDREB%']
threshold = 99.5

fig, ax = plt.subplots(len(col_names), figsize=(8,40))

for i, col_val in enumerate(col_names):
    x = Data[col_val][:1346]
    sns.distplot(x, ax=ax[i], rug=True, hist=False)
    outliers = x[percentile_based_outlier(x, threshold)]
    ax[i].plot(outliers, np.zeros_like(outliers), 'ro', clip_on=False)

    ax[i].set_title('Outlier detection - {}'.format(col_val), fontsize=15)
    ax[i].set_xlabel(col_val, fontsize=10)

plt.show()

, затем он показывает график: коробчатая диаграмма с выбросами

теперь, как мне изменить код, чтобы удалить выбросы после создания графика? Если это невозможно, есть ли какой-либо альтернативный метод, например, отдельная функция для удаления выбросов с тем же пороговым параметром? (у меня есть другие столбцы, которые я хотел бы очистить с другим пороговым значением)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...