Удалить выбросы по группам на основе IQR - PullRequest
0 голосов
/ 10 сентября 2018

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

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

(а также целый ряд других вещей).

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

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

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

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

1 Ответ

0 голосов
/ 10 сентября 2018

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

# 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)
...