我只需要选择购买了超过x件商品的用户
例如,我有一个表,其中:
users items
-----------------------
1 a
1 b
1 c
1 d
2 N
2 M
我只希望有购买了3件以上商品的用户。在示例中,我将只有用户1而没有用户2,而用户2只购买了2件商品。
现在,我在sql脚本中使用此条件,该输出是python脚本的输入,但是由于需要很长时间,所以我希望直接在python脚本中执行此操作。
先感谢您。
问候,
最佳答案
您需要filter:
df = df.groupby('users').filter(lambda x: len(x['items']) > 3)
print (df)
users items
0 1 a
1 1 b
2 1 c
3 1 d
transform
和boolean indexing
的另一种解决方案:df = df[df.groupby('users')['items'].transform('size') > 3]
print (df)
users items
0 1 a
1 1 b
2 1 c
3 1 d