Wie man den Index eines Pandas-DataFrame in eine Spalte umwandelt
-
df.index
um den Index als neue Spalte hinzuzufügen -
reset_index
mitrename_axis
um den aktuellen Index-Spaltennamen umzubenennen -
set_index
Methode um die Spalte in einen Index umzuwandeln -
MultiIndex
um mehrere Schichten vonindexes
aufcolumn
zu setzen
Wir werden verschiedene Methoden vorstellen, um den index
eines Pandas DataFrame
in eine Spalte umzuwandeln, wie z. B. df.index
, set_index
, und reset_index
mit rename_axis
, um den index
umzubenennen.
Wir werden auch vorstellen, wie wir Multi-Index
auf einen gegebenen DataFrame
mit mehreren Indexschichten anwenden können.
df.index
um den Index als neue Spalte hinzuzufügen
Der einfachste Weg, einen Index als Spalte hinzuzufügen, ist das Hinzufügen von df.index
als neue Spalte zu DataFrame
.
Betrachten Sie den folgenden Code:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
)
df["index"] = df.index
print(df)
Ausgabe:
a b d index1
0 1.0 2.0 NaN 0
1 NaN 4.0 NaN 1
2 5.0 NaN 7.0 2
3 5.0 NaN NaN 3
reset_index
mit rename_axis
um den aktuellen Index-Spaltennamen umzubenennen
Wir können den Namen unseres index
ändern und dann reset_index
zu einer Series
verwenden:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
)
df = df.rename_axis("index").reset_index()
print(df)
Ausgabe:
index a b d
0 0 1.0 2.0 NaN
1 1 NaN 4.0 NaN
2 2 5.0 NaN 7.0
3 3 5.0 NaN NaN
set_index
Methode um die Spalte in einen Index umzuwandeln
Wir können jede Spalte mit der Methode set_index
in index
umwandeln:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, 4, 7), (5, 5, None)], columns=["a", "b", "d"]
)
df.set_index("b", inplace=True)
print(df)
Ausgabe:
a d
b
2 1.0 NaN
4 NaN NaN
4 5.0 7.0
5 5.0 NaN
Oder wenn wir den index
Namen entfernen wollen, wie im Original, können wir df.index.name = None
ausführen:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, 4, 7), (5, 5, None)], columns=["a", "b", "d"]
)
df.set_index("b", inplace=True)
df.index.name = None
print(df)
Ausgabe:
a d
2 1.0 NaN
4 NaN NaN
4 5.0 7.0
5 5.0 NaN
MultiIndex
um mehrere Schichten von indexes
auf column
zu setzen
Wir können die Funktion MultiIndex.from_product()
verwenden, um einen MultiIndex wie folgt zu erstellen:
# python 3.x
import pandas as pd
import numpy as np
index = pd.MultiIndex.from_product(
[["Burger", "Steak", "Sandwich"], ["Half", "Full"]], names=["Item", "Type"]
)
df = pd.DataFrame(
index=index, data=np.random.randint(0, 10, (6, 4)), columns=list("abcd")
)
print(df)
Ausgabe:
a b c d
Item Type
Burger Half 0 3 9 1
Full 2 2 0 5
Steak Half 8 4 5 5
Full 5 8 0 7
Sandwich Half 2 8 9 5
Full 4 4 5 9
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum