【问题标题】:How do I roll up values to create a list in the cells of a dataframe per id using pandas?如何汇总值以使用 pandas 在每个 id 的数据框的单元格中创建一个列表?
【发布时间】:2015-08-25 18:45:19
【问题描述】:

我有一个如下图所示的数据框:

id  value
100 a
100 b
100 c
100 d
200 1
200 2
200 3

如何汇总到以下格式?

id  value
100 ['a','b','c','d']
200 ['1','2','3']

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以在“id”上groupby,然后applylistvalue 列,然后调用reset_index

    In [13]:
    
    df.groupby('id')['value'].apply(list).reset_index()
    Out[13]:
        id         value
    0  100  [a, b, c, d]
    1  200     [1, 2, 3]
    

    【讨论】:

    • 我通过创建元组列表(即 apply(tuples))而不是列表解决了这个错误。但我无法解释为什么元组在这里工作以及何时使用元组与列表。请指教。
    • 如果您有新问题,然后发布新问题,SO 不是论坛。该错误是不言自明的,列表 dtype 不可散列,因此无法正常工作。
    • 对不起,我没有看到你的新更新,请接受这个答案,这样它就不会一直无人回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2023-03-23
    • 1970-01-01
    • 2020-06-24
    • 2018-12-22
    • 2023-02-23
    • 2022-09-06
    相关资源
    最近更新 更多