Dies scheint ziemlich offensichtlich, aber ich kann nicht herausfinden, wie ein Index eines Datenrahmens in eine Spalte konvertiert werden kann.
Zum Beispiel:
df=
gi ptt_loc
0 384444683 593
1 384444684 594
2 384444686 596
Zu,
df=
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
df.reset_index(level=df.index.names, inplace=True)
kann man einen bestimmten ganzen Multiindex in Spalten umwandelndf.reset_index()
, wodurch der gesamte Index in die Spalten verschoben wird (eine Spalte pro Ebene) und ein int-Index von 0 bis len (df) -1 erstellt wirddf['index1'] = df.index
eine Warnung zurück: "Es wird versucht, einen Wert für eine Kopie eines Slice aus einem DataFrame festzulegen." Verwenden Sie stattdessen die Funktion df.assign (), wie unten gezeigt.Für MultiIndex können Sie den Subindex mit extrahieren
Wo
si_name
ist der Name des Subindex?quelle
Um ein bisschen mehr Klarheit zu schaffen, schauen wir uns einen DataFrame mit zwei Ebenen im Index an (einen MultiIndex).
Die
reset_index
Methode, die mit den Standardparametern aufgerufen wird, konvertiert alle Indexebenen in Spalten und verwendet einen einfachenRangeIndex
wie neuen 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.In dem seltenen Fall, dass Sie den Index beibehalten und den Index in eine Spalte umwandeln möchten, können Sie Folgendes tun:
quelle
rename_axis
+reset_index
Sie können Ihren Index zuerst in eine gewünschte Bezeichnung umbenennen und dann zu einer Reihe aufheben:
Dies funktioniert auch für
MultiIndex
Datenrahmen:quelle
Wenn Sie die
reset_index
Methode verwenden und auch Ihren vorhandenen Index beibehalten möchten, sollten Sie Folgendes verwenden:oder um es an Ort und Stelle zu ändern:
Zum Beispiel:
Und wenn Sie die Indexbezeichnung entfernen möchten, können Sie Folgendes tun:
quelle
quelle
Eine sehr einfache Möglichkeit hierfür ist die Verwendung der Methode reset_index (). Verwenden Sie für einen Datenrahmen df den folgenden Code:
Auf diese Weise wird der Index zu einer Spalte, und wenn Sie inplace als True verwenden, wird dies zu einer dauerhaften Änderung.
quelle