Um ein bisschen mehr Klarheit zu schaffen, schauen wir uns einen DataFrame mit zwei Ebenen im Index an (einen MultiIndex).
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'],
['North', 'South']],
names=['State', 'Direction'])
df = pd.DataFrame(index=index,
data=np.random.randint(0, 10, (6,4)),
columns=list('abcd'))
Die reset_index
Methode, die mit den Standardparametern aufgerufen wird, konvertiert alle Indexebenen in Spalten und verwendet einen einfachen RangeIndex
wie neuen Index.
df.reset_index()
Verwenden Sie den level
Parameter, um zu steuern, welche Indexstufen in Spalten konvertiert werden. Verwenden Sie nach Möglichkeit den expliziteren Ebenennamen. Wenn keine Ebenennamen vorhanden sind, können Sie auf jede Ebene anhand ihrer ganzzahligen Position verweisen, die von außen bei 0 beginnt. Sie können hier einen Skalarwert oder eine Liste aller Indizes verwenden, die Sie zurücksetzen möchten.
df.reset_index(level='State') # same as df.reset_index(level=0)
In dem seltenen Fall, dass Sie den Index beibehalten und den Index in eine Spalte umwandeln möchten, können Sie Folgendes tun:
# for a single level
df.assign(State=df.index.get_level_values('State'))
# for all levels
df.assign(**df.index.to_frame())