【问题标题】:Create a list of list from pandas dataframe in python with group by使用 group by 从 python 中的 pandas 数据框创建列表列表
【发布时间】:2021-12-06 19:06:31
【问题描述】:

我是python的初学者。我只是想知道,我在 pandas 数据框

中有这些数据
type value
A 1
A 4
A 3
B 6
B 2
B 2

每个类型将有三个值(可以是不同的值或相同的值)

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

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

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

【问题讨论】:

    标签: python pandas list dataframe nested-lists


    【解决方案1】:
    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]]。如果您想对列表的任何值进行排序,您必须相应地应用key=some_function()

    【讨论】:

    • 谢谢!它真的很有帮助。一个问题,假设我有 100 种类型(A、B、C、...等),我怎样才能继续获取列表列表但按类型列排序?所以在上述情况下,我肯定会得到 [[1,4,3],[6,2,2]] 而不是 [[6,2,2], [1,4,3]]。我试过df.sort_values(by=['type']).groupby('type').agg(list)['value'].tolist() 但没用
    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 2020-04-13
    • 2017-04-30
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    相关资源
    最近更新 更多