So löschen sie zeilen in pandas dataframe basierend auf der bedingung
Wir können die folgende Syntax verwenden, um Zeilen in einem Pandas-DataFrame basierend auf der Bedingung zu löschen:
Methode 1: Zeilen basierend auf einer einzelnen Bedingung löschen
df = df[df. col1 > 8]
Methode 2: Zeilen basierend auf mehreren Bedingungen löschen
df = df[(df. col1 > 8) & (df. col2 != ' A ')]
Hinweis : Wir können auch die Funktion drop() verwenden, um Zeilen aus einem DataFrame zu löschen, aber diese Funktion hat sich als viel langsamer erwiesen, als den DataFrame einfach einer gefilterten Version von sich selbst zuzuweisen.
Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' pos ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team pos assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Methode 1: Zeilen basierend auf einer einzelnen Bedingung löschen
Der folgende Code zeigt, wie Zeilen im DataFrame basierend auf einer Bedingung gelöscht werden:
#drop rows where value in 'assists' column is less than or equal to 8
df = df[df. assists > 8]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
Jede Zeile mit einem Wert kleiner oder gleich 8 in der Spalte „Unterstützung“ wurde aus dem DataFrame entfernt.
Methode 2: Zeilen basierend auf mehreren Bedingungen löschen
Der folgende Code zeigt, wie Zeilen im DataFrame basierend auf mehreren Bedingungen gelöscht werden:
#only keep rows where 'assists' is greater than 8 and rebounds is greater than 5
df = df[(df. assists > 8) & (df. rebounds > 5)]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
Die einzigen Zeilen, die wir im DataFrame behielten, waren diejenigen, in denen der Assists-Wert größer als 8 und der Rebounds-Wert größer als 5 war.
Beachten Sie, dass wir auch das | verwenden können Operator zum Anwenden eines „oder“-Filters:
#only keep rows where 'assists' is greater than 8 or rebounds is greater than 10
df = df[(df. assists > 8) | (df. rebounds > 10)]
#view updated DataFrame
df
team pos assists rebounds
0 A G 5 11
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
7 B F 4 12
Die einzigen Zeilen, die wir im DataFrame behielten, waren diejenigen, bei denen der Assist-Wert größer als 8 oder der Rebound-Wert größer als 10 war.
Alle Zeilen, die eine dieser Bedingungen nicht erfüllten, wurden gelöscht.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So löschen Sie Zeilen, die einen bestimmten Wert in Pandas enthalten
So löschen Sie Zeilen, die eine bestimmte Zeichenfolge in Pandas enthalten
So löschen Sie Zeilen nach Index in Pandas