根据IQR按组删除异常值

时间:2018-09-10 08:29:28

标签: python pandas pandas-groupby outliers

我有一个包含以下变量的df:

  • pp(参与者)
  • 条件
  • rt(反应时间)

(以及一大堆其他东西)。

我想根据iqr标准修剪异常值。但是,我想按条件,按页这样做。

我认为解决方案将从

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

但是那又怎样呢?如何删除每个组的异常值?我要使用Apply函数,还是filter函数可以帮助我?

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

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