Есть ли встроенный способ фильтрации по столбцу с помощью IQR (то есть значения между Q1-1.5IQR и Q3 + 1.5IQR)? также будет оценена любая другая возможная обобщенная фильтрация в предложенных пандах.Как использовать фильтр pandas с IQR?
8
A
ответ
13
Насколько я знаю, самая компактная нотация, кажется, принесена методом query
.
# Some test data
np.random.seed(33454)
df = (
# A standard distribution
pd.DataFrame({'nb': np.random.randint(0, 100, 20)})
# Adding some outliers
.append(pd.DataFrame({'nb': np.random.randint(100, 200, 2)}))
# Reseting the index
.reset_index(drop=True)
)
# Computing IQR
Q1 = df['nb'].quantile(0.25)
Q3 = df['nb'].quantile(0.75)
IQR = Q3 - Q1
# Filtering Values between Q1-1.5IQR and Q3+1.5IQR
filtered = df.query('(@Q1 - 1.5 * @IQR) <= nb <= (@Q3 + 1.5 * @IQR)')
Затем мы можем построить результат, чтобы проверить разницу. Мы заметили, что выброс в левом прямоугольнике (крест на 183) больше не появляется в отфильтрованной серии.
# Ploting the result to check the difference
df.join(filtered, rsuffix='_filtered').boxplot()
Поскольку этот ответ я написал post на эту тему были вы можете найти более подробную информацию.
1
Это даст вам подмножество df
, которая лежит в МКД колонны column
:
def get_subset_by_IQR(df,column):
q1 = df[column].quantile(0.25)
q3 = df[column].quantile(0.75)
iqr = (df[column] > q1) & (df[column] < q3)
return df.loc[iqr]
2
Другой подход с использованием Series.between():
iqr = df['col'][df['col'].between(df['col'].quantile(.25), df['col'].quantile(.75), inclusive=True)]
вытягивается:
q1 = df['col'].quantile(.25)
q2 = df['col'].quantile(.75)
mask = d['col'].between(q1, q2, inclusive=True)
iqr = d.loc[mask, 'col']
Смежные вопросы
- 1. Поиск IQR групп строк
- 2. Фильтр pandas dataframe
- 3. FFmpeg Как использовать фильтр-фильтр?
- 4. Фильтр переменной pandas
- 5. Фильтр внутри групп Pandas
- 6. Фильтр Pandas DataFrame с использованием другого DataFrame
- 7. Попытка получить IQR с данными groupby
- 8. Как удалить/устранить выбросы, используя метод IQR
- 9. Фильтр данных pandas с результатами groupby
- 10. Pandas: фильтр dataframe с типом данных
- 11. Фильтр Data Data Frame с Pandas
- 12. Фильтр Pandas DataFrame с использованием цикла while
- 13. Фильтр DataFrame объекта dtype с использованием pandas
- 14. Фильтр по часам в Pandas
- 15. фильтр pandas dataframe по времени
- 16. Как использовать Pandas index.insert?
- 17. Как использовать фильтр красноречивым?
- 18. Как использовать pandas DataFrame.style?
- 19. Фильтр сетки Кендо - как использовать фильтр «ИЛИ»
- 20. Как использовать EZrgb24 фильтр
- 21. Как использовать фильтр?
- 22. Как использовать фильтр lodash?
- 23. Как использовать фильтр JQuery?
- 24. Как использовать угловой фильтр
- 25. Фильтр Pandas DataFrame для элементов в списке
- 26. Как использовать pandas rolling_sum с раздвижными окнами
- 27. Как использовать функции с pandas dataframe
- 28. Как использовать топор с Pandas и Matplotlib
- 29. Удалить элемент в списке, если вне IQR
- 30. Фильтр Pandas не работает должным образом