【发布时间】:2019-05-20 15:43:08
【问题描述】:
我有一个带有“重量”、“价格”和“ID”等列的熊猫数据框。我的用户正在购买几个具有不同 ID 的商品。我想统计整个用户的购物篮/订单,例如总重量和总价格。 准确地说,我有一个 DataFrame df,以及带有 id 的篮子列表,例如:
df.head()
price id weight
1 4.0 1 257.90125
2 4.0 2 87.52515
3 6.0 3 142.69750
4 6.0 4 444.77600
59 4.0 59 0.00000
baskets_list
[(587, 25, 11, 186, 587, 587),
(587, 25, 12, 186, 587, 587),
(587, 25, 13, 186, 587, 587),
(587, 25, 14, 186, 587, 587),
(587, 25, 15, 186, 587, 587),
(587, 25, 16, 186, 587, 587),
(587, 25, 17, 186, 587, 587)
]
我想通过这个篮子列表聚合这个数据框(在篮子里我有物品的 id 列表)。希望有人可以帮助我进行此聚合。
【问题讨论】:
-
最直接的方法是创建人员数据框 - 您可以在其中创建人员索引,其中包含产品 id 列。然后对 id 上的产品表进行左连接。从那里你可以按人等分组。
-
@Chinny84 不错的方法,谢谢您的帮助。一个问题,它会在内存中创建这个产品表,这会很重
-
上一期我不太明白。似乎最简单的只是一个字典理解,循环通过你的
baskets_list,子集并将聚合结果存储在字典中。
标签: python pandas pandas-groupby