如何根据B列中的唯一身份用户在A列中查找唯一值?

时间:2019-09-10 17:19:31

标签: python-3.x pandas pandas-groupby

我有一个看起来像这样的数据框:

df=
['UserId','SessionId','Item_class']
[1       ,34         ,'toy'       ]
[1       ,35         ,'book'      ]
[2       ,36         ,'book'      ]

请注意,UserId和SessionId之间存在1:n关系,因为1个用户可以在多个会话中购买商品。

我需要找出用户在这样的输出中购买了多少个独特商品:

 df=
    ['UserId','number_items']
    [1       ,2             ]
    [2       ,1             ]

我发现了许多主题,它们仅讨论如何获取列的唯一值  df.Item_class.unique(),但我没有发现可以通过子列(在本例中为UserId)分解的任何内容。

希望有人可以提供帮助。谢谢

1 个答案:

答案 0 :(得分:2)

尝试这个:

>>> df.groupby("UserId").Item_class.nunique()
UserId
1    2
2    1

Item_class的唯一UserID计数