Получить определенный индекс из фрейма данных MultiIndex Pandas в виде списка - PullRequest
0 голосов
/ 22 октября 2018

Я хочу получить конкретный индекс фрейма данных Pandas с 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 голосов
/ 22 октября 2018

Используя 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]
0 голосов
/ 22 октября 2018

В этом решении используется наложение на np.stack() и нарезка:

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