我有一个包含以下变量的df:
(以及一大堆其他东西)。
我想根据iqr标准修剪异常值。但是,我想按条件,按页这样做。
我认为解决方案将从
开始grouped = df.groupby(['pp','condition'])
但是那又怎样呢?如何删除每个组的异常值?我要使用Apply函数,还是filter函数可以帮助我?
答案 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)