首页 > 解决方案 > 使用 group by 从 python 中的 pandas 数据框创建列表列表

问题描述

我是python的初学者。我只是想知道,我在熊猫数据框中有这些数据

类型 价值
一种 1
一种 4
一种 3
6
2
2

其中每种类型将具有三个值(它可以是不同的值或相同的值)

我想要的是创建一个列表列表(或任何东西,我不知道确切的名称,因为我坚持使用这个词汇搜索类似的问题)但按类型列分组

预期的输出正是这样的列表列表:

[[1,4,3],[6,2,2]]

标签: pythonpandaslistdataframenested-lists

解决方案


df.groupby('type').agg(pd.Series.tolist)['value'].tolist()

或者简单地说:

df.groupby('type').agg(list)['value'].tolist()

编辑:

这取决于您是否要对哪个数字进行排序。在这种情况下,它将对列表的第一个元素进行排序1

如果你想逆转,你可以简单地说k = df.groupby('type').agg(list)['value'].tolist()

k.sort(reverse=True) 

它会给你[[6,2,2], [1,4,3]]。如果您想对 list 的任何值进行排序,则必须key=some_function()相应地应用。


推荐阅读