Pandas按groupby分组后生成列表嵌套列表

17

给定一个结构如下的数据框:

rule_id | ordering | sequence_id
   1    |    0     |     12     
   1    |    1     |     13
   1    |    1     |     14
   2    |    0     |     1
   2    |    1     |     2
   2    |    2     |     12 

我需要将它转化为:

rule_id |  sequences
   1    |  [[12],[13,14]]
   2    |  [[1],[2],[12]]

这似乎是将groupby转换为groupby to list操作 - 但我无法在pandas中使其工作。

df.groupby(['rule_id', 'ordering'])['sequence_id'].apply(list)

留下了我

rule_id  ordering
1        0               [12]
         1            [13,14]
2        0                [1]
         1                [2]
         2               [12]

如何将另一个groupBy操作应用于进一步将结果连接成一个列表?

1个回答

15

使用另一个groupbyMultiIndex的第一级分组:

df.groupby(['rule_id', 'ordering'])['sequence_id'].apply(list).groupby(level=0).apply(list)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接