我有一个类似于下面的大型数据框。我想要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'])
答案 0 :(得分:1)
听起来你想要DataFrameGroupBy.filter
,在你的情况下会归结为
df - df.mean(axis=0,level=0)
例如(我修改了你的输入以覆盖一些边缘情况):
df.groupby('account').filter(lambda x: any(x.grade))