将分层索引系列转换为序列

Converting a hierarchicaly indexed Series to a sequence

假设我有以下 pandas 系列:

import pandas as pd
import numpy as np
data= pd.Series(np.random.randn(10), index =[['a','a','a','b','b','b','c','c','d','d'],[1,2,3,1,2,3,1,2,2,3]])

输出:

a  1   -1.079086
   2    0.017873
   3    0.528414
b  1    1.462864
   2    0.314324
   3    1.194004
c  1   -0.723474
   2    2.431482
d  2    1.646265
   3    0.112295
dtype: float64

我想获得一个序列,该序列的元素是一个由二级索引组成的列表。那就是我想获得以下形式的东西:

[[1,2,3], [1,2,3], [1,2], [2,3]]

correct/efficient 方法是什么?

试试这个:

In [58]: data.reset_index().groupby('level_0')['level_1'].apply(list).values.tolist()
Out[58]: [[1, 2, 3], [1, 2, 3], [1, 2], [2, 3]]