【发布时间】:2018-10-28 01:33:03
【问题描述】:
我想按组删除基于百分位 99 值的异常值。
import pandas as pd
df = pd.DataFrame({'Group': ['A','A','A','B','B','B','B'], 'count': [1.1,11.2,1.1,3.3,3.40,3.3,100.0]})
在输出中,我想从 A 组中删除 11.2,从 B 组中删除 100。所以最终数据集中只有 5 个观察值。
wantdf = pd.DataFrame({'Group': ['A','A','B','B','B'], 'count': [1.1,1.1,3.3,3.40,3.3]})
我试过这个,但我没有得到想要的结果
df[df.groupby("Group")['count'].transform(lambda x : (x<x.quantile(0.99))&(x>(x.quantile(0.01)))).eq(1)]
【问题讨论】:
-
df.groupby('Group')['count'].transform(lambda x : x<=x.quantile(0.001))
标签: python python-3.x pandas pandas-groupby