
Durch die Verwendung von reset_index() kann der Index (Zeilenlabel) von pandas.DataFrame und pandas.Series auf die fortlaufende Nummer (Zeilennummer) beginnend bei 0 neu zugewiesen werden.
Wenn Zeilennummern als Index used Werden, ist es bequemer, neu zu indizieren, wenn sich sterben Reihenfolge der Zeilen nach dem Sortieren ändert oder wenn eine Nummer nach dem Löschen einer Zeile fehlt.
Es WIRD auch used, um den aktuellen Index zu löschen oder zur Datenspalte aufzurufen, wenn der Zeilenname (String) als Index used WIRD. Durch die Verwendung von set_index() und reset_index() can SIE den Index auf eine andere Spalte ändern.
Dieser Artikel hat folgenden Inhalt.
- Grundlegende Verwendung von reset_index()
- Ändern Sie den Index in eine andere Spalte durch reset_index() und set_index()
Die folgenden Daten werden als Beispiel verwendet.
import pandas as pd
df = pd.read_csv('data/src/sample_pandas_normal.csv')
print(df)
# name age state point
# 0 Alice 24 NY 64
# 1 Bob 42 CA 92
# 2 Charlie 18 CA 70
# 3 Dave 68 TX 70
# 4 Ellen 24 CA 88
# 5 Frank 30 NY 57
Das Beispiel verwendet pandas.DataFrame, aber pandas.Series bietet auch reset_index(). Die Verwendung ist die gleiche.
Grundlegende Verwendung von reset_index()
Sortieren Sie Zeilen mit sort_values() zur Erklärung.
Im following Artikel FINDEN SIE Laptops zum Sortieren mit sort_values() und sort_index().
df.sort_values('state', inplace=True)
print(df)
# name age state point
# 1 Bob 42 CA 92
# 2 Charlie 18 CA 70
# 4 Ellen 24 CA 88
# 0 Alice 24 NY 64
# 5 Frank 30 NY 57
# 3 Dave 68 TX 70
Weisen Sie den Index durch reset_index() den fortlaufenden Nummern neu zu, beginnend bei 0.
Standardmäßig wird der ursprüngliche Index als neue Spalte hinzugefügt.
df_r = df.reset_index()
print(df_r)
# index name age state point
# 0 1 Bob 42 CA 92
# 1 2 Charlie 18 CA 70
# 2 4 Ellen 24 CA 88
# 3 0 Alice 24 NY 64
# 4 5 Frank 30 NY 57
# 5 3 Dave 68 TX 70
Löschen Sie den ursprünglichen Index:drop
Wenn der Parameter drop auf True gesetzt ist, wird der ursprüngliche Index gelöscht.
df_r = df.reset_index(drop=True)
print(df_r)
# name age state point
# 0 Bob 42 CA 92
# 1 Charlie 18 CA 70
# 2 Ellen 24 CA 88
# 3 Alice 24 NY 64
# 4 Frank 30 NY 57
# 5 Dave 68 TX 70
Originalobjekt ändern:inplace
Standardmäßig ändert reset_index() das ursprüngliche Objekt nicht und gibt ein neues Objekt zurück, aber wenn das Argument inplace auf True gesetzt ist, wird das ursprüngliche Objekt geändert.
df.reset_index(inplace=True, drop=True)
print(df)
# name age state point
# 0 Bob 42 CA 92
# 1 Charlie 18 CA 70
# 2 Ellen 24 CA 88
# 3 Alice 24 NY 64
# 4 Frank 30 NY 57
# 5 Dave 68 TX 70
Ändern Sie den Index in eine andere Spalte durch reset_index() und set_index()
Nehmen wir als Beispiel den Fall, in dem ein Zeilenname (String) als Index gesetzt wird.
df = pd.read_csv('data/src/sample_pandas_normal.csv', index_col=0)
print(df)
# age state point
# name
# Alice 24 NY 64
# Bob 42 CA 92
# Charlie 18 CA 70
# Dave 68 TX 70
# Ellen 24 CA 88
# Frank 30 NY 57
Durch die Verwendung von reset_index() werden fortlaufend Nummern auf den Index gesetzt und der ursprüngliche Index WIRD zur Datenspalte hinzugefügt.
df_r = df.reset_index()
print(df_r)
# name age state point
# 0 Alice 24 NY 64
# 1 Bob 42 CA 92
# 2 Charlie 18 CA 70
# 3 Dave 68 TX 70
# 4 Ellen 24 CA 88
# 5 Frank 30 NY 57
Verwenden Sie set_index(), um eine andere Spalte in einem Index zu ändern.
Das Anwenden von set_index() auf den ursprünglichen DataFrame löscht den ursprünglichen Index.
df_s = df.set_index('state')
print(df_s)
# age point
# state
# NY 24 64
# CA 42 92
# CA 18 70
# TX 68 70
# CA 24 88
# NY 30 57
Wenn Sie den ursprünglichen Index als Datenspalte beibehalten möchten, können Sie set_index() nach reset_index() verwenden.
df_rs = df.reset_index().set_index('state')
print(df_rs)
# name age point
# state
# NY Alice 24 64
# CA Bob 42 92
# CA Charlie 18 70
# TX Dave 68 70
# CA Ellen 24 88
# NY Frank 30 57