python-3.x - 如何根据 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)来分解它的内容。
希望有人可以提供帮助。谢谢
解决方案
试试这个:
>>> df.groupby("UserId").Item_class.nunique()
UserId
1 2
2 1
它计数Item_class
唯一UserID
推荐阅读
- dbt - 如何使用 DBT 验证查询?
- javascript - MSAL 2.*.js 是否适用于 IE 11?
- flutter - 你如何测试一个消耗流的颤振块
- android - 使用 Android NumberFormatter 时出现“java.lang.NoSuchMethodError: No static method”错误
- c# - 如何在拖放事件期间修改被拖动的对象?
- node.js - 在 Sequelize / NodeJs 中约束/防止重复的多对多关系
- nestjs - 如何在连接 queryBuilder 中使用 entiy queryBuilder?
- python - Django:在循环之前需要检查 QuerySet 是否存在
- css - ckeditor 不将样式应用于模板中的文本
- bash - 将 FIND 命令与 IF 语句结合使用