我想获取一个以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
。该怎么办?
答案 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]