Weiter zum Inhalt

Pandas: reset_index Tutorial

Lerne die pandas-Methode reset_index(), um den Index eines DataFrame zurückzusetzen. Entdecke die Optionen dieser Methode und wie du den Index für einfache und mehrstufige DataFrames zurücksetzt.
Aktualisiert 18. Sept. 2026  · 8 Min. lesen

Entdecke KI

ChatGPTClaudePerplexity

Nach dem Bearbeiten und Filtern eines großen Datensatzes erhältst du möglicherweise genau den benötigten DataFrame. Dieser behält jedoch oft den ursprünglichen, nicht fortlaufenden Index. In solchen Fällen solltest du den Index des DataFrame zurücksetzen.

In diesem Tutorial sprechen wir über die pandas-Methode reset_index(), mit der der Index eines DataFrame auf den Standard zurückgesetzt wird. Wir sehen uns die verschiedenen Optionen an, die diese Methode bietet. Außerdem zeigen wir, wie du den Index bei einfachen und mehrstufigen DataFrames zurücksetzt.

Zum Üben verwenden wir ein Airline-Dataset. Wir nutzen Datacamps Datalab, eine interaktive Umgebung, die speziell für Datenanalyse in Python entwickelt wurde – ideal, um dem Tutorial Schritt für Schritt zu folgen.

Was ist reset_index?

Die Methode reset_index in pandas setzt den Index eines DataFrame auf den Standardindex zurück. Nach Operationen wie Filtern, Zusammenführen oder Konkatenation ist der Index oft nicht mehr fortlaufend. Diese Methode stellt einen sauberen, fortlaufenden Index wieder her. Bei einem MultiIndex können ein oder mehrere Ebenen entfernt werden.

Grundlegende Syntax:

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

Parameter:

  1. level: Bei einem mehrstufigen DataFrame kannst du den Namen oder die Position der Indexebene angeben, die aus dem Index entfernt werden soll. Standardmäßig werden alle Ebenen entfernt.
  2. drop: Boolesche Option. True – Der aktuelle Zeilenindex wird nicht als neue Spalte hinzugefügt. False (Standard) – Der aktuelle Zeilenindex wird als neue Spalte hinzugefügt.
  3. inplace: Legt fest, ob ein neuer DataFrame zurückgegeben oder der bestehende aktualisiert wird. Boolesch, Standard ist False.
  4. col_level: Bei mehrstufigen Spalten bestimmt dies, in welcher Ebene die Labels eingefügt werden. Standard ist die erste Ebene.
  5. col_fill: Bei mehrstufigen Spalten legt dies fest, wie die anderen Ebenen benannt werden. Ist None, wird der Indexname wiederholt.

Rückgabe:

DataFrame mit neuem Index oder None, wenn inplace=True gesetzt ist.

So verwendest du reset_index

Wenn du eine CSV-Datei mit der pandas-Methode read_csv() ohne Index einliest, erhält der DataFrame standardmäßig einen ganzzahlbasierten Index, beginnend bei 0 und pro Zeile um 1 steigend.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv").head()
df

reading airlines dataset

Manchmal sind beschreibendere Zeilenlabels sinnvoll. Dafür kannst du eine Spalte als Index (Zeilenlabels) setzen. Beim Laden per read_csv() gibst du die gewünschte Indexspalte über den Parameter index_col an.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv", index_col="Operating Airline IATA Code").head()
df

setting the column Operating Airline IATA Code as the new index of the dataframe

Alternativ kannst du mit der Methode set_index() jede beliebige Spalte eines DataFrame als Index festlegen:

import pandas as pd
df = pd.read_csv("airlines_dataset.csv").head()
df.set_index("Operating Airline IATA Code", inplace=True)
df

Beachte, dass dieses Snippet den ursprünglichen DataFrame verändert.

setting the column Operating Airline IATA Code as the new index of the dataframe using set_index method

Was ist, wenn du den standardmäßigen numerischen Index wiederherstellen willst? Hier kommt die pandas-Methode reset_index() ins Spiel.

df.reset_index()

resetting index of the dataframe

Das Beispiel zeigt: Nachdem die Spalte "Operating Airline IATA Code" als Index gesetzt wurde, stellt reset_index den ursprünglichen ganzzahligen Standardindex wieder her.

Praktische Anwendungsfälle für reset_index

Die pandas-Methode reset_index() ist ein starkes Werkzeug, um DataFrame-Indizes nach dem Filtern, beim Zusammenführen/Konkatenieren oder bei MultiIndex-Strukturen neu zu organisieren.

Lerne mehr über das Umformen von DataFrames von Wide- zu Long-Formaten, das Stapeln und Entstapeln von Zeilen und Spalten sowie den Umgang mit MultiIndex-DataFrames in unserem Online-Kurs.

Zurücksetzen nach dem Filtern

Beim Filtern bleibt der ursprüngliche Index erhalten. Mit reset_index kannst du den gefilterten DataFrame neu indizieren.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv")

Filtern wir die Daten auf Zeilen, in denen der "Landing Count" größer als 1000 ist. Nach dem Filtern ist der Index eventuell nicht mehr fortlaufend. Anschließend kannst du die Methode reset_index verwenden, um den Index des gefilterten DataFrame zurückzusetzen.

filtered_df = df[df["Landing Count"] > 1000].head()
filtered_df

daraframe where the "landing count" is greater than 1000

Das Bild zeigt: Der DataFrame wurde nach der Bedingung gefiltert, aber der Index ist nicht fortlaufend. Jetzt setzen wir mit reset_index neu, damit der Index wieder sequenziell ist. So geht's:

filtered_df_reset = filtered_df.reset_index()
filtered_df_reset

The index set to sequential

Standardmäßig ersetzt diese Methode den bestehenden Index durch einen ganzzahligen Standardindex und wandelt den alten Index in eine neue Spalte um (mit gleichem Namen oder "index", falls er namenlos war).

Verwende daher den Parameter drop=True, damit der alte Index nicht als neue Spalte hinzugefügt wird.

filtered_df_reset = filtered_df.reset_index(drop=True)
filtered_df_reset

using drop parameter to remove the old index

Perfekt! Die Indizes wurden auf den Standard (0, 1, 2, …) zurückgesetzt – sauber und fortlaufend.

Konkatenieren oder Mergen

Beim Kombinieren von DataFrames können doppelte oder nicht fortlaufende Indizes entstehen. Ein Zurücksetzen erzeugt wieder einen sauberen, fortlaufenden Index.

Angenommen, du hast zwei DataFrames, die du konkatenieren willst. Für die Demo habe ich zwei DataFrames aus dem Airline-Datensatz erzeugt.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv")
split_index = int(df.shape[0] / 2)
df1 = df[:split_index].head()
df2 = df[split_index:].head()

Das ist df1:

dataframe 1 extracted from original dataframe

Und das ist df2:

dataframe 2 extracted from original dataframe

Konkatenieren wir nun df1 und df2.

df_concat = pd.concat([df1, df2])

concatenated dataframe

Die Indizes sind nicht fortlaufend. Wir setzen den Index des konkatenierten DataFrame zurück, um ihn zu sequenzialisieren.

Setzen wir den Index mit der pandas-Methode reset_index() zurück.

df_concat.reset_index()

Need to remove index column

So sieht das Ergebnis nach dem Zurücksetzen aus. Die Methode reset_index wandelt den alten Index in eine neue Spalte um. Um diese Zusatzspalte zu entfernen, setze den Parameter drop=True.

df_concat.reset_index(drop=True)

index column removed

Mit mehrstufigen Indizes arbeiten

Bei DataFrames mit hierarchischem (mehrstufigem) Index kannst du mit reset_index den DataFrame vereinfachen, indem die Ebenen zurück in Spalten überführt werden.

Schauen wir uns einen DataFrame mit MultiIndex an.

import pandas as pd
df = pd.read_csv(
    "airlines_dataset.csv", index_col=["Aircraft Model", "Operating Airline IATA Code"]
).head()

multiple indexes in a dataframe

Prüfst du den Index, siehst du: Es ist kein einfacher Index, sondern ein MultiIndex-Objekt.

multiple indexes in the dataframe

Nun verwenden wir die pandas-Methode reset_index(), die alle Ebenen eines MultiIndex entfernt:

df.reset_index()

multiindex now becomes sequential

Beide Ebenen des MultiIndex wurden in normale DataFrame-Spalten überführt, der Index selbst ist wieder der ganzzahlige Standardindex.

Mit dem Parameter level kannst du gezielt bestimmte Ebenen aus dem Index entfernen. Diese werden dann zu normalen Spalten – es sei denn, du verwirfst sie vollständig mit dem Parameter drop. Beispiel:

df.reset_index(level=["Aircraft Model"])

Operating Airline IATA Code is only remains as the index

Wie zu sehen ist, ist "Aircraft Model" jetzt eine normale Spalte. Nur "Operating Airline IATA Code" bleibt als Index erhalten.

Wenn diese Ebene nicht als Spalte übernommen werden soll, kannst du drop und level kombinieren, um sie komplett zu entfernen.

df.reset_index(level=["Aircraft Model"], drop=True)

Der Index "Aircraft Model" wurde sowohl aus dem Index als auch aus dem DataFrame entfernt. Der andere Index, "Operating Airline IATA Code", bleibt als aktueller Index bestehen.

Fortgeschrittene Nutzung und Tipps

Index beibehalten

Wenn du zwei DataFrames mergst, ist der resultierende Index oft nicht mehr fortlaufend, wie im folgenden DataFrame zu sehen.

temporary dataframe

Setzen wir den Index des DataFrame mit der pandas-Methode reset_index() zurück.

df.reset_index()

need to remove unnecessary index column from the index

Der Parameter drop steuert, ob der alte Index nach dem Zurücksetzen als Spalte im DataFrame erhalten bleibt oder vollständig entfernt wird. Standardmäßig (drop=False) bleibt er erhalten, wie in den bisherigen Beispielen. Mit drop=True entfernst du den alten Index vollständig.

df.reset_index(drop=True)

index column deleted

Inplace-Operation

Ändere den DataFrame direkt mit dem Parameter inplace, um keinen neuen DataFrame zu erzeugen.

Angenommen, du hast folgenden DataFrame:

index is not sequential

Setzt du inplace auf True, werden die Änderungen direkt am Original-DataFrame vorgenommen, ohne einen separaten zu erzeugen.

df_concat.reset_index(drop=True, inplace=True)
df_concat

index is sequential

Mit Duplikaten umgehen

Behandle doppelte Indizes, indem du den Index zurücksetzt und neu indizierst.

Angenommen, deine Daten enthalten doppelte Indizes.

dataframe with duplicate indices

Mit reset_index() sowie drop=True und inplace=True stellst du sicher, dass der resultierende DataFrame wieder einen lückenlosen, bei 0 beginnenden Index hat.

df.reset_index(drop=True, inplace=True)

index is sequential

Häufige Fallstricke und Troubleshooting bei pandas reset_index

  1. Index wird nicht zurückgesetzt: Stelle sicher, dass du nicht mit inplace=False arbeitest, wenn du erwartest, dass der Original-DataFrame geändert wird. Ist inplace auf False gesetzt, wird ein neuer DataFrame zurückgegeben und das Original bleibt unverändert.
  2. Datenverlust: Gehe vorsichtig mit dem Parameter drop um, um unbeabsichtigten Verlust von Indexinformationen zu vermeiden. Beim Droppen werden die aktuellen Indexwerte dauerhaft entfernt.

Hands-on-Beispiel zu reset_index

Wenden wir das Gelernte an und sehen, wie nützlich das Zurücksetzen des Index ist, wenn fehlende Werte entfernt werden.

Unser Airline-Datensatz enthält keine fehlenden Werte, deshalb verwenden wir stattdessen das Dataset Netflix Movies and TV shows. Dort gibt es fehlende Werte – ideal, um reset_index() zu demonstrieren.

import pandas as pd
df = pd.read_csv("netflix_shows.csv")
df.head()

dataframe from NaN values

Wie du siehst, gibt es fehlende Werte im DataFrame. Entferne Zeilen mit fehlenden Werten mit der Methode dropna().

df.dropna(inplace=True)
df.head()

dataframe without NaN values

Die Zeilen mit NaN wurden entfernt. Der Index ist nun aber nicht mehr lückenlos (0, 1, 2, 4). Setzen wir ihn zurück:

df.reset_index()

need to remove unnecessary index column

Jetzt ist der Index wieder lückenlos. Weil wir drop nicht angegeben haben, wurde der alte Index als Spalte mit dem Standardnamen index übernommen. Entfernen wir ihn vollständig:

df.reset_index(drop=True)

dataset is normal

Der alte, bedeutungslose Index ist vollständig entfernt, der aktuelle Index ist fortlaufend. Im letzten Schritt speichern wir die Änderung direkt im Original-DataFrame über den Parameter inplace:

df.reset_index(drop=True, inplace=True)

Fazit

Du hast gelernt, wie die Funktion reset_index in Pandas effizient mit DataFrame-Indizes umgeht. Ob gefilterte Daten, konkateniere DataFrames oder komplexes MultiIndexing – reset_index sorgt für einen aufgeräumten DataFrame. Die Parameter helfen dir, verschiedenste Index-Szenarien in der Datenmanipulation zu steuern.

Lerne weiter mit ähnlichen Funktionen wie reset_index im Data Analyst with Python Career Track von DataCamp. Wenn du mit Listen arbeitest, lies auch unser Python List Index() Tutorial, um die Funktion index() für Listen kennenzulernen. 


Satyam Tripathi's photo
Author
Satyam Tripathi
LinkedIn
Themen
Python

Top pandas Courses

Kurs

Datenbearbeitung mit pandas

4 Std.
567.9K
Erweitere deine pandas-Kenntnisse und lerne, wie du Daten importierst und bereinigst, Kennzahlen berechnest und Visualisierungen erstellst.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Ähnlich

Tutorial

Python-Methode list() mit Beispielen erklärt

Lerne, wie du mit der Python-Funktion index() die Position von Elementen in Listen findest.
Sejal Jaiswal's photo

Sejal Jaiswal

6 Min.

Tutorial

Loop-Schleifen in Python-Tutorial

Lerne, wie du For-Schleifen in Python umsetzt, um eine Sequenz oder die Zeilen und Spalten eines Pandas-DataFrame zu durchlaufen.
Aditya Sharma's photo

Aditya Sharma

5 Min.

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

24 Min.

Tutorial

Python .append() und .extend() Methoden Tutorial

Lerne, wie du mit den Methoden .append() und .extend() Elemente zu einer Liste hinzufügst.
DataCamp Team's photo

DataCamp Team

2 Min.

Tutorial

Python range()-Funktion Tutorial

Lerne anhand von Beispielen die Python-Funktion range() und ihre Möglichkeiten kennen.
Aditya Sharma's photo

Aditya Sharma

7 Min.

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

5 Min.

Mehr AnzeigenMehr Anzeigen