我有一个这样的熊猫数据框:
TransactionID ProductID
1 132
1 256
1 985
2 321
3 451
3 219
我想按“ TransactionID”分组并将“ ProductID”分配给列表,如下所示:
list = [[132, 256, 985], [321], [451, 291]]
执行此任务的正确方法是什么?
谢谢!
答案 0 :(得分:0)
类似的事情可能会有所帮助。
您只需按TransactionID
对它们进行分组,然后从中取出ProductID
并转换为列表
grouped_list = list(df.groupby('TransactionID')['ProductID'].apply(list))
如评论中所述,将“ list”用作变量名是不好的。这是因为您将通过将其设置为从df中提取的分组列表来重新定义list命令的原始功能。
答案 1 :(得分:0)
以下内容不是很好,但是可以工作。
result = [list(i.ProductID) for i in dict(list(df.groupby("TransactionID"))).values()]