Wie löscht man eine Zeile im Pandas-DataFrame basierend auf dem Wert einer Spalte?
In Pandas kann man eine Zeile in einem DataFrame basierend auf einem bestimmten Spaltenwert löschen, indem man die Methode drop()
verwendet und den Index-Label der Zeile, die man löschen möchte, übergibt. Wenn man zum Beispiel einen DataFrame namens df
hat und eine Zeile löschen möchte, in der der Wert in der Spalte 'Alter' 30 ist, kann man folgenden Code verwenden:
df = df[df.Alter != 30]
Alternativ kann man auch die Boolean Indexing
verwenden
df = df[df['Alter'] != 30]
Beide obigen Codezeilen erstellen einen neuen DataFrame, der die Zeilen, in denen die Spalte 'Alter' gleich 30 ist, nicht enthält.
Eine weitere Möglichkeit ist die Verwendung der Methode DataFrame.query(). Hier ist ein Beispiel:
df = df.query('Alter != 30')
Diese Methode erstellt eine Kopie des ursprünglichen Dataframes mit der Abfrage als String übergeben.
Eine weitere Möglichkeit, Zeilen mit bestimmten Werten basierend auf Spalten zu entfernen, besteht darin, die drop()-Methode mit boolschem Indexing zu verwenden:
df.drop(df[df['Alter'] == 30].index, inplace=True)
Man kann auch axis=0 beim Aufrufen der drop()-Methode und der Bedingung in derselben Zeile übergeben:
df = df.drop(df[df['Alter'] == 30].index, axis=0)
inplace=True
führt die Änderungen am bestehenden DataFrame durch, wenn es nicht übergeben wird, wird eine Kopie des DataFrames mit den Änderungen zurückgegeben.