1 回答
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用GroupBy.transformand Series.between,這樣更快:
groups = df.groupby('group')['col']
groups_mean = groups.transform('mean')
groups_std = groups.transform('std')
m = df['col'].between(groups_mean.sub(groups_std.mul(3)),
groups_mean.add(groups_std.mul(3)),
inclusive=False)
print(m)
new_df = df.loc[m]
When should I want to use apply
您的應(yīng)用代碼可能是:
df.groupby(by='group')['col'].apply(lambda x: x.lt( x.mean().add(x.std().mul(3)) ) & x.gt( x.mean().sub(x.std().mul(3)) ))
添加回答
舉報(bào)
