Pandas DataFrame Index zurücksetzen

Suraj Joshi 30 Januar 2023
  1. Pandas DataFrame reset_index() Methode
  2. Index eines DataFrame mit der Methode pandas.DataFrame.reset_index() zurücksetzen
Pandas DataFrame Index zurücksetzen

Dieses Tutorial erklärt, wie wir den Index in Pandas DataFrame mit pandas.DataFrame.reset_index() zurücksetzen können. Die Methode reset_index() setzt den Index des DataFrame auf den Standardindex mit Zahlen von 0 bis (Anzahl der Zeilen im DataFrame-1).

Pandas DataFrame reset_index() Methode

Syntax

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill="")

Index eines DataFrame mit der Methode pandas.DataFrame.reset_index() zurücksetzen

import pandas as pd

roll_no = [501, 502, 503, 504, 505]

student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)

print(student_df)

Ausgabe:

        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A

Angenommen, wir haben einen DataFrame mit fünf Zeilen und vier Spalten, wie in der Ausgabe dargestellt. Wir haben auch einen Index im DataFrame gesetzt.

Index eines DataFrame zurücksetzen und dabei den Anfangsindex des DataFrame als Spalte beibehalten

import pandas as pd

roll_no = [501, 502, 503, 504, 505]

student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)

print("Initial DataFrame:")
print(student_df)
print("")

print("DataFrame after reset_index:")
student_df.reset_index(inplace=True, drop=False)
print(student_df)

Ausgabe:

Initial DataFrame:
        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A

DataFrame after reset_index:
   index     Name  Age      City Grade
0    501    Alice   17  New York     A
1    502   Steven   20  Portland    B-
2    503  Neesham   18    Boston    B+
3    504    Chris   21   Seattle    A-
4    505    Alice   15    Austin     A

Es wird der Index des DataFrame student_df auf den Standardindex zurückgesetzt. Das inplace=True macht die Änderung im ursprünglichen DataFrame selbst. Wenn wir drop=False verwenden, wird der ursprüngliche Index als Spalte im DataFrame platziert, nachdem wir die Methode reset_index() verwendet haben.

Index eines DataFrame zurücksetzen Entfernen des Anfangsindex eines DataFrame

import pandas as pd

roll_no = [501, 502, 503, 504, 505]

student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)

print("Initial DataFrame:")
print(student_df)
print("")

print("DataFrame after reset_index:")
student_df.reset_index(inplace=True, drop=True)
print(student_df)

Ausgabe:

Initial DataFrame:
        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A

DataFrame after reset_index:
      Name  Age      City Grade
0    Alice   17  New York     A
1   Steven   20  Portland    B-
2  Neesham   18    Boston    B+
3    Chris   21   Seattle    A-
4    Alice   15    Austin     A

Es wird der Index des DataFrame student_df auf den Standardindex zurückgesetzt. Da wir in der Methode reset_index() drop=True gesetzt haben, wird der Anfangsindex aus dem DataFrame entfernt.

Index eines DataFrame nach dem Löschen von Zeilen zurücksetzen

import pandas as pd

roll_no = [501, 502, 503, 504, 505]

student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    }
)

student_df.drop([2, 3], inplace=True)
print("Initial DataFrame:")
print(student_df)
print("")

student_df.reset_index(inplace=True, drop=True)
print("DataFrame after reset_index:")
print(student_df)

Ausgabe:

Initial DataFrame:
     Name  Age      City Grade
0   Alice   17  New York     A
1  Steven   20  Portland    B-
4   Alice   15    Austin     A

DataFrame after reset_index:
     Name  Age      City Grade
0   Alice   17  New York     A
1  Steven   20  Portland    B-
2   Alice   15    Austin     A

Wie wir in der Ausgabe sehen können, haben wir nach dem Löschen von Zeilen fehlende Indizes. In solchen Fällen können wir die Methode reset_index() verwenden, um den Index ohne fehlende Werte zu verwenden.

Wenn wir möchten, dass der ursprüngliche Index als Spalte des DataFrame platziert wird, können wir drop=False in der Methode reset_index() verwenden.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Pandas Index