Основываясь на результате, как удалить данные, которые находятся выше верхней точки диаграммы?

#pandas #numpy #bigdata #data-science

Вопрос:

У меня есть данные , на основе которых я анализирую IQR , на основе результата, который я хотел бы удалить, данные, которые находятся выше верхней точки boxplot

То, что мне удалось найти, — это код

 df.loc[(data['Test1'] < 52)]
 

Вместо числа 52 я хотел бы, чтобы была переменная
Например upper , что имеет значение

Я ищу что-то, что будет лучше, чем df.drop или df.loc

 import numpy as np
import pandas as pd

#create data frame
data = pd.read_excel(r'C:Users\PulpitLiveA8EEC900.xlsx')
df = pd.DataFrame(data, columns = ['Test1'])
q1 = np.round(df.quantile(0.25), 2)
q3 = np.round(df.quantile(0.75), 2)
iqr = np.round(q3 - q1, 2)
upper = q3   (1.5 * iqr)
lower = q1 - (1.5 * iqr)
min_value = np.round(df.min(), 2)
dt = df.loc[(data['Test1'] < 52)]
 

Комментарии:

1. Можете ли вы привести пример данных, которые позволят воспроизвести ваш код?

2. Я тоже не совсем понимаю этот вопрос. Кстати, вы можете просто заменить 52 на верхний в своем фрагменте кода, как он написан.

3. Разве вы не можете просто использовать upper переменную вместо 52?

4. @Ошибка AdityaValue : Может сравнивать объекты серии с одинаковыми метками