我只需要选择购买了超过x件商品的用户
例如我有一张表格:
users items
-----------------------
1 a
1 b
1 c
1 d
2 N
2 M
我想只有购买超过3件商品的用户。在案例中,我只有用户1而不是用户2,他们只购买了2件商品。
现在我在我的sql脚本中使用这个条件,输出是我的python脚本的输入但是因为它需要很长时间我希望直接在我的python脚本中执行它。
提前谢谢。
此致
答案 0 :(得分:1)
您需要filter:
foo
transform
和boolean indexing
的另一种解决方案:
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
答案 1 :(得分:0)
您可以按users
分组,然后计算购买的商品数量:
In [8]: d = df.groupby('users').size().reset_index(name='items_purchased')
In [9]: d
Out[9]:
users items_purchased
0 1 4
1 2 2
然后用掩码过滤:
In [10]: fil = 3
In [11]: d = d[d['items_purchased']>fil]
In [12]: d
Out[12]:
users items_purchased
0 1 4