Pandas group by on groupby到列表列表

时间:2018-04-03 08:05:35

标签: python pandas dataframe

给定一个结构化的数据框:

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到列表操作 - 但是我不能让它在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 个答案:

答案 0 :(得分:4)

在第一级groupby使用其他MultiIndex

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