Python-将行分组为列表

时间:2018-12-11 09:20:52

标签: python dataframe pandas-groupby

我有一个这样的熊猫数据框:

TransactionID     ProductID
1                 132
1                 256
1                 985
2                 321
3                 451
3                 219

我想按“ TransactionID”分组并将“ ProductID”分配给列表,如下所示:

list = [[132, 256, 985], [321], [451, 291]]

执行此任务的正确方法是什么?

谢谢!

2 个答案:

答案 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()]