Удаление выбросов по группам на основе IQR

У меня есть df, который содержит следующие переменные:

  • пп (участник)
  • состояние
  • rt (время реакции)

(а также множество других вещей).

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

Я полагаю, решение начнется с

grouped = df.groupby(['pp','condition'])

но что потом? Как удалить выбросы по группе? Я использую функцию применения или мне помогает функция фильтра?

предоставить образцы данных вместе с ожидаемым результатом

Sociopath 10.09.2018 10:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
556
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать что-то вроде этого:

# define a function to filter out your data
def filter_condition(grped_df):
    if some_condition:
        return grped_df[some_condition]
    return grped_df


grouped = df.groupby(by=['pp','condition'])

# use apply to pass each group to your defined function and reset index to remove grouped multi index.

filtered_df = grouped.apply(filter_condition).reset_index(drop=True)

Да, это сработало. Спасибо за совет!

Inkidu616 10.09.2018 13:12

Другие вопросы по теме