我只需要选择购买了超过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


transformboolean 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

10-08 08:03
查看更多