我有一个数据网格,其中每一行都是已使用的,每一列都是他们购买的产品类型,这是一个微调版本,整个表有200多列:
UserID total purchase_range tshirts jeans jumpers shoes scarves belts hats coats chinos socks
a3470c41-d349-4f5c-bd2d-ed58d2959758 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
02dbb049-f28e-4637-9e35-3bce06b65727 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
9803c98a-890c-4b99-b32a-f34658b1bddd 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
5e19940d-d981-4e42-900c-242687d37ae0 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
8cf37896-b675-491e-a06a-6282966d8a43 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
931f63a1-456f-4ff4-b0c5-4474a5e4a75d 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
552b12dc-5ea1-49d1-ab08-9b7c688df03c 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
bbe5d4f5-8b32-44a3-bb89-eed8304111e7 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
09d15874-1cdc-43aa-9761-a3287faed610 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
9825692b-912b-45e1-b3ae-f18d7eda8700 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
030dccda-7de2-4293-aee6-ad079f6f0feb 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
4388651d-041a-45d8-b7fe-1894003ce4f2 1 Narrow 0 0 1 0 0 0 0 0 0 0 0
06c643f3-b93b-49df-974a-8d5c2cf97e8b 1 Narrow 0 0 1 0 0 0 0 0 0 0 0
6a6f0f75-5970-470f-b1f5-a299a26e0468 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
62739f9f-e1aa-4139-b26e-0df8679aee3d 1 Narrow 0 0 1 0 0 0 0 0 0 0 0
4d0605b5-b043-466c-a13c-17a17b6a7ba8 1 Narrow 0 0 0 1 0 0 0 0 0 0 0
9d6e6eba-53c2-4f23-ab25-3c169c35cf2f 1 Narrow 0 0 0 0 0 0 0 0 0 0 0
返回购买了特定产品类型或其组合的用户ID列表的最佳方式是什么?我是否需要为每个类别建立一个空白列表,然后使用for循环对其进行迭代,以计算该列中“1”的数量?如果是这样,我如何返回实际的用户ID而不是计数?有没有更优雅/灵活的方法来实现这一点
这里有一个方法。此方法的优点是可以提供任意组合的产品进行检查
只需使用标准布尔逻辑和索引:
对于鞋子和牛仔裤的组合:
输出:
(该输出是一个^{)。使用
df['userid'][indices].values
仅获取具有纯索引的numpy数组。)相关问题 更多 >
编程相关推荐