Pandas Groupby条件过滤

时间:2018-02-11 20:33:12

标签: python python-3.x filtering conditional-statements pandas-groupby

我有一个类似于下面的大型数据框。我想要Groupby' account',让Groupby只保留那些有"等级"在小组中(至少有一个记录在#34;帐户"小组有"等级"大于0)。
在此示例中,在按" account"进行分组后,应该只剩下四个组(1,3,4,5)。

我怎么能在熊猫中做到这一点?

store = {'account': ['1', '1', '2', '2', '3', '4', '5'],
    'sales': [150, 200, 50,100, 125, 250, 300 ],
    'employees': [3, 5, 1,2, 3,5,7 ],
    'grade': [80, 90, '','' ,75, 60,85]}
df = pd.DataFrame(store)
df.groupby(['account'])

1 个答案:

答案 0 :(得分:1)

听起来你想要DataFrameGroupBy.filter,在你的情况下会归结为

df - df.mean(axis=0,level=0)

例如(我修改了你的输入以覆盖一些边缘情况):

df.groupby('account').filter(lambda x: any(x.grade))