Panda's: verwijder rijen op basis van meerdere voorwaarden
U kunt de volgende methoden gebruiken om rijen te verwijderen op basis van meerdere voorwaarden in een Pandas DataFrame:
Methode 1: Verwijder rijen die aan een van verschillende voorwaarden voldoen
df = df. loc [ ~ ((df[' col1 '] == ' A ') | (df[' col2 '] > 6 ))]
In dit specifieke voorbeeld worden alle rijen verwijderd waarin de waarde van col1 gelijk is aan A of de waarde van col2 groter is dan 6.
Methode 2: Verwijder rijen die aan meerdere voorwaarden voldoen
df = df. loc [ ~ ((df[' col1 '] == ' A ') & (df[' col2 '] > 6 ))]
In dit specifieke voorbeeld worden alle rijen verwijderd waarin de waarde van col1 gelijk is aan A en de waarde van col2 groter is dan 6.
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
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
Voorbeeld 1: Verwijder rijen die aan een van verschillende voorwaarden voldoen
De volgende code laat zien hoe u rijen in het DataFrame verwijdert waarbij de waarde in de kolom Team gelijk is aan A of de waarde in de kolom Aanwezigheden groter is dan 6:
#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
Houd er rekening mee dat alle rijen waarin de teamkolom gelijk was aan A of de kolom assists groter was dan 6, zijn verwijderd.
Voor dit specifieke DataFrame zijn zes van de rijen verwijderd.
Opmerking : de | het symbool vertegenwoordigt de ‘OF’-logica in panda’s.
Voorbeeld 2: Verwijder rijen die aan meerdere voorwaarden voldoen
De volgende code laat zien hoe u rijen in het DataFrame verwijdert waarbij de waarde in de kolom Team gelijk is aan A en de waarde in de kolom Aanwezigheden groter is dan 6:
#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
Houd er rekening mee dat alle rijen waarin de teamkolom gelijk was aan A en de kolom assists groter was dan 6, zijn verwijderd.
Voor dit specifieke DataFrame zijn drie van de rijen verwijderd.
Opmerking : het symbool & vertegenwoordigt “EN”-logica in panda’s.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe rijen met een specifieke waarde in Pandas te verwijderen
Hoe rijen te verwijderen die een specifieke string bevatten in Pandas
Hoe rijen per index te verwijderen in Pandas