Pandas group by on groupby列表

pro*_*ath 12 python dataframe pandas

给定的数据框结构如下:

rule_id | ordering | sequence_id
   1    |    0     |     12     
   1    |    1     |     13
   1    |    1     |     14
   2    |    0     |     1
   2    |    1     |     2
   2    |    2     |     12 
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为:

rule_id |  sequences
   1    |  [[12],[13,14]]
   2    |  [[1],[2],[12]]
Run Code Online (Sandbox Code Playgroud)

这似乎很容易组成groupby到列表操作 - 但我不能让它在熊猫中工作.

df.groupby(['rule_id', 'ordering'])['sequence_id'].apply(list)
Run Code Online (Sandbox Code Playgroud)

离开我

rule_id  ordering
1        0               [12]
         1            [13,14]
2        0                [1]
         1                [2]
         2               [12]
Run Code Online (Sandbox Code Playgroud)

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

jez*_*ael 7

groupby在第一级使用另一个MultiIndex

df.groupby(['rule_id', 'ordering'])['sequence_id'].apply(list).groupby(level=0).apply(list)
Run Code Online (Sandbox Code Playgroud)