将分层索引系列转换为序列
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]]
假设我有以下 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]]