Hoe rijen in pandas dataframe te verwijderen op basis van de voorwaarde
We kunnen de volgende syntaxis gebruiken om rijen in een Panda DataFrame te verwijderen op basis van de voorwaarde:
Methode 1: Rijen verwijderen op basis van één voorwaarde
df = df[df. col1 > 8]
Methode 2: Rijen verwijderen op basis van meerdere voorwaarden
df = df[(df. col1 > 8) & (df. col2 != ' A ')]
Opmerking : we kunnen ook de functie drop() gebruiken om rijen uit een DataFrame te verwijderen, maar deze functie is veel langzamer gebleken dan het eenvoudigweg toewijzen van het DataFrame aan een gefilterde versie van zichzelf.
De volgende voorbeelden laten zien hoe u deze syntaxis 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, 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: Rijen verwijderen op basis van één voorwaarde
De volgende code laat zien hoe u rijen in het DataFrame verwijdert op basis van een voorwaarde:
#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
Elke rij met een waarde kleiner dan of gelijk aan 8 in de kolom ‚assistentie‘ is verwijderd uit het DataFrame.
Methode 2: Rijen verwijderen op basis van meerdere voorwaarden
De volgende code laat zien hoe u rijen in het DataFrame verwijdert op basis van verschillende voorwaarden:
#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
De enige rijen die we in het DataFrame bewaarden, waren die waarin de assistswaarde groter was dan 8 en de reboundswaarde groter dan 5.
Merk op dat we ook de | operator om een “of”-filter toe te passen:
#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
De enige rijen die we in het DataFrame bewaarden, waren de rijen waarin de hulpwaarde groter was dan 8 of de rebound-waarde groter dan 10.
Alle rijen die niet aan een van deze voorwaarden voldeden, zijn verwijderd.
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