Pandas: obtenha nível multi-índice como série
Eu tenho um quadro de dados com vários níveis, por exemplo:
idx = pd.MultiIndex.from_product((['foo', 'bar'], ['one', 'five', 'three' 'four']),
names=['first', 'second'])
df = pd.DataFrame({'A': [np.nan, 12, np.nan, 11, 16, 12, 11, np.nan]}, index=idx).dropna().astype(int)
A
first second
foo five 12
four 11
bar one 16
five 12
three 11
Quero criar uma nova coluna usando o nível de índice intituladosecond
, para que eu receba
A B
first second
foo five 12 five
four 11 four
bar one 16 one
five 12 five
three 11 three
Eu posso fazer isso redefinindo o índice, copiando a coluna e reaplicando, mas isso parece mais abrangente.
eu tenteidf.index.levels[1]
, mas que cria uma lista classificada, não preserva a ordem.
Se fosse um único índice, eu usariadf.index
mas em um índice múltiplo que cria uma coluna de tuplas.
Se isso for resolvido em outro lugar, compartilhe como não tive sorte em pesquisar nos arquivos do stackoverflow.