首页 > 解决方案 > 如何根据 B 列中的唯一用户在 A 列中查找唯一值?

问题描述

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

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)来分解它的内容。

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

标签: python-3.xpandaspandas-groupby

解决方案


试试这个:

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

它计数Item_class唯一UserID


推荐阅读