Panda's: hoe vind je de eerste rij die aan de criteria voldoet?
U kunt de volgende syntaxis gebruiken om de eerste rij van een Panda DataFrame te vinden die aan specifieke criteria voldoet:
#get first row where value in 'team' column is equal to 'B' df[df. team == ' B ']. iloc [0] #get index of first row where value in 'team' column is equal to 'B' df[df. team == ' B ']. index [0]
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', 'B', 'B', 'C', 'C', 'C'], ' points ': [18, 13, 19, 14, 24, 21, 20, 28], ' assists ': [5, 7, 17, 9, 12, 9, 5, 12]}) #view DataFrame print (df) team points assists 0 to 18 5 1 to 13 7 2 A 19 17 3 B 14 9 4 B 24 12 5 C 21 9 6 C 20 5 7 C 28 12
Voorbeeld 1: Zoek de eerste rij die aan een criterium voldoet
We kunnen de volgende syntaxis gebruiken om de eerste rij te vinden waar de waarde in de teamkolom gelijk is aan „B“:
#find first row where team is equal to 'B' df[df. team == ' B ']. iloc [0] team B points 14 assists 9 Name: 3, dtype: object #find index of first row where team is equal to 'B' df[df. team == ' B ']. index [0] 3
We kunnen zien dat de eerste rij waar de waarde in de teamkolom gelijk is aan „B“ zich op indexpositie 3 bevindt.
Voorbeeld 2: Zoek de eerste rij die aan meerdere criteria voldoet
We kunnen de volgende syntaxis gebruiken om de eerste rij te vinden waar de waarde in de puntenkolom groter is dan 15 en de waarde in de assists- kolom groter is dan 10:
#find first row where points > 15 and assists > 10 df[(df. points > 15) & (df. assists > 10)]. iloc [0] team A points 19 assists 17 Name: 2, dtype: object #find index of first row where points > 15 and assists > 10 df[(df. points > 15) & (df. assists > 10)]. index [0] 2
We kunnen zien dat de eerste rij waar de waarde in de puntenkolom groter is dan 15 en de waarde in de assists- kolom groter is dan 10, zich op indexpositie 2 bevindt.
Voorbeeld 3: Zoek de eerste rij die aan een van de vele criteria voldoet
We kunnen de volgende syntaxis gebruiken om de eerste rij te vinden waar de waarde in de puntenkolom groter is dan 15 of de waarde in de assists- kolom groter is dan 10:
#find first row where points > 15 or assists > 10 df[(df. points > 15) | (df. assists > 10)]. iloc [0] team A points 18 assists 5 Name: 0, dtype: object #find index of first row where points > 15 or assists > 10 df[(df. points > 15) | (df. assists > 10)]. index [0] 0
We kunnen zien dat de eerste rij waar de waarde in de puntenkolom groter is dan 15 of de waarde in de assists- kolom groter is dan 10, zich op indexpositie 0 bevindt.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Hoe rijen zonder NaN-waarden in Panda’s te selecteren
Hoe u rijen selecteert op basis van kolomwaarden in Pandas
Hoe afzonderlijke rijen in Panda’s te selecteren