Панды: получить многоиндексный уровень в серии
У меня есть датафрейм с несколькими уровнями, например:
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
Я хочу создать новый столбец, используя уровень индекса под названиемsecond
так, чтобы я получил
A B
first second
foo five 12 five
four 11 four
bar one 16 one
five 12 five
three 11 three
Я могу сделать это путем сброса индекса, копирования столбца, а затем повторного применения, но это кажется более округлым.
Я старалсяdf.index.levels[1]
, но это создает отсортированный список, но не сохраняет порядок.
Если бы это был один индекс, я бы использовалdf.index
но в мультииндексе, который создает столбец кортежей.
Если это решено в другом месте, пожалуйста, поделитесь, так как мне не повезло в поиске в архиве stackoverflow.