Pandas: Multiindex Level als Serie erhalten
Ich habe einen Datenrahmen mit mehreren Ebenen, zB:
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
Ich möchte eine neue Spalte mit der Indexebene "@" erstellesecond
, damit ich @ bekom
A B
first second
foo five 12 five
four 11 four
bar one 16 one
five 12 five
three 11 three
Ich kann dies tun, indem ich den Index zurücksetze, die Spalte kopiere und dann erneut anwende, aber das scheint etwas runder zu sein.
Ich habe es versuchtdf.index.levels[1]
, aber das erstellt eine sortierte Liste, behält die Reihenfolge nicht bei.
Wenn es ein einzelner Index wäre, würde ich @ verwenddf.index
aber in einem Multiindex, der eine Spalte mit Tupeln erstellt.
Wenn dies anderswo behoben ist, teilen Sie es bitte mit, da ich beim Durchsuchen der Stackoverflow-Archive kein Glück hatte.