从Pandas数据框的MultiIndex中获取特定的索引作为列表

时间:2018-10-22 14:55:06

标签: python pandas numpy dataframe multi-index

我想获取一个以MultiIndex作为列表的熊猫数据帧的特定索引。

举个例子

import pandas as pd; import numpy as np
np.random.seed(42)
df = pd.DataFrame(np.random.randint(5, size=(5, 4)), columns=list('ABCD'))
df.set_index(['A', 'B'], inplace=True)

其中df被定义为

     C  D
A B
3 4  2  4
4 1  2  2
2 4  3  2
4 1  3  1
3 4  0  3

我要提取

[4 1 4 1 4]

对应于第二个索引B。该怎么办?

2 个答案:

答案 0 :(得分:4)

使用get_level_values

df.index.get_level_values(level=1).tolist()
Out[1040]: [4, 1, 4, 1, 4]

reset_index

df.reset_index(level=1).B.tolist()
Out[1041]: [4, 1, 4, 1, 4]

答案 1 :(得分:0)

此解决方案使用通过np.stack()进行堆叠和切片:

np.stack(df.index.values, axis=0)[:,1]