【问题标题】:Remove outliers by group based on IQR基于 IQR 按组去除异常值
【发布时间】:2018-09-10 08:29:28
【问题描述】:
我有一个包含以下变量的 df:
(以及一大堆其他东西)。
我想根据 iqr 标准修剪异常值。但是,我想根据条件,每页这样做。
我认为解决方案将从
开始
grouped = df.groupby(['pp','condition'])
然后呢?如何删除每组的异常值?我是使用应用功能,还是过滤功能在这里帮助我?
【问题讨论】:
标签:
python
pandas
pandas-groupby
outliers
【解决方案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)