将事务数据格式中的pandas数据帧转换为list Python

2024-05-16 15:09:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个事务格式的pandas数据帧:

id  purchased_item
1   apple
1   banana
1   carrot
2   banana
3   apple
4   apple
4   carrot
4   diet coke
5   banana
5   carrot
6   banana
6   carrot

我想将此转换为以下内容:

^{pr2}$

我试过了:

df.groupby(['id'])['purchased_item'].apply(list)

输出如下:

customer_id
1                 [apple, banana, carrot]
2                                [banana]
3                                 [apple]
4              [apple, carrot, diet coke]
5                        [banana, carrot]
6                        [banana, carrot]

下一步怎么办?或者有不同的方法吗?非常感谢你的帮助。在


Tags: 数据idapplepandasdf格式item事务
2条回答

我宁愿使用不同的解决方案使用综合列表:

[gr['purchased_item'].tolist() for n, gr in df.groupby('id')]

Out[9]:
[['apple', 'banana', 'carrot'],
 ['banana'],
 ['apple'],
 ['apple', 'carrot', 'dietcoke'],
 ['banana', 'carrot'],
 ['banana', 'carrot']]

您在回复question的评论中提到的解决方案:

df.groupby(['id'])['purchased_item'].apply(list).values.tolist()

In [434]: df.groupby(['id'])['purchased_item'].apply(list).values.tolist()
Out[434]:
[['apple', 'banana', 'carrot'],
 ['banana'],
 ['apple'],
 ['apple', 'carrot', 'diet_coke'],
 ['banana', 'carrot'],
 ['banana', 'carrot']]

编辑

一些测试性能可与@Colonel Beauvel解决方案进行比较:

^{pr2}$

相关问题 更多 >