我有一个看起来像这样的数据框:
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)分解的任何内容。
希望有人可以提供帮助。谢谢
答案 0 :(得分:2)
尝试这个:
>>> df.groupby("UserId").Item_class.nunique()
UserId
1 2
2 1
每Item_class
的唯一UserID
计数