Pandas: zeilen basierend auf mehreren bedingungen löschen


Sie können die folgenden Methoden verwenden, um Zeilen basierend auf mehreren Bedingungen in einem Pandas-DataFrame zu löschen:

Methode 1: Zeilen löschen, die eine von mehreren Bedingungen erfüllen

 df = df. loc [ ~ ((df[' col1 '] == ' A ') | (df[' col2 '] > 6 ))]

In diesem speziellen Beispiel werden alle Zeilen gelöscht, in denen der Wert von Spalte 1 gleich A oder der Wert von Spalte 2 größer als 6 ist.

Methode 2: Zeilen entfernen, die mehrere Bedingungen erfüllen

 df = df. loc [ ~ ((df[' col1 '] == ' A ') & (df[' col2 '] > 6 ))] 

In diesem speziellen Beispiel werden alle Zeilen gelöscht, in denen der Wert von Spalte 1 gleich A und der Wert von Spalte 2 größer als 6 ist.

Die folgenden Beispiele zeigen, wie jede Methode 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, 3, 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 3 9
7 B F 4 12

Beispiel 1: Zeilen löschen, die eine von mehreren Bedingungen erfüllen

Der folgende Code zeigt, wie Zeilen im DataFrame gelöscht werden, in denen der Wert in der Spalte „ Team “ gleich A oder der Wert in der Spalte „ Anwesenheiten “ größer als 6 ist:

 #drop rows where value in team column == 'A' or value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') | (df[' assists '] > 6 ))]

#view updated DataFrame
print (df)

  team pos assists rebounds
6 BF 3 9
7 BF 4 12

Beachten Sie, dass alle Zeilen entfernt wurden, in denen die Teamspalte gleich A oder die Assists-Spalte größer als 6 war.

Für diesen speziellen DataFrame wurden sechs der Zeilen gelöscht.

Hinweis : Die | Das Symbol stellt die „ODER“-Logik in Pandas dar.

Beispiel 2: Zeilen entfernen, die mehrere Bedingungen erfüllen

Der folgende Code zeigt, wie Zeilen im DataFrame gelöscht werden, bei denen der Wert in der Spalte „ Team “ gleich A und der Wert in der Spalte „ Anwesenheiten “ größer als 6 ist:

 #drop rows where value in team column == 'A' and value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') & (df[' assists '] > 6 ))]

#view updated DataFrame
print (df)

  team pos assists rebounds
0 AG 5 11
4 BG 12 6
5 BG 9 5
6 BF 3 9
7 BF 4 12

Beachten Sie, dass alle Zeilen entfernt wurden, in denen die Spalte „Teams“ gleich A und die Spalte „Assistenten“ größer als 6 war.

Für diesen speziellen DataFrame wurden drei der Zeilen gelöscht.

Hinweis : Das Symbol & steht für die „UND“-Logik in Pandas.

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert