Pandas : comment trouver la première rangée qui répond aux critères
Vous pouvez utiliser la syntaxe suivante pour rechercher la première ligne d’un DataFrame pandas qui répond à des critères spécifiques :
#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]
Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame 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 A 18 5 1 A 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
Exemple 1 : Rechercher la première ligne qui répond à un critère
Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne équipe est égale à « 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
Nous pouvons voir que la première ligne où la valeur dans la colonne équipe est égale à « B » est en position d’index 3.
Exemple 2 : Rechercher la première ligne qui répond à plusieurs critères
Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne des points est supérieure à 15 et la valeur dans la colonne des passes décisives est supérieure à 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
Nous pouvons voir que la première ligne où la valeur dans la colonne des points est supérieure à 15 et la valeur dans la colonne des passes décisives est supérieure à 10 est en position d’index 2.
Exemple 3 : Rechercher la première ligne qui répond à l’un des nombreux critères
Nous pouvons utiliser la syntaxe suivante pour trouver la première ligne où la valeur dans la colonne des points est supérieure à 15 ou la valeur dans la colonne des passes décisives est supérieure à 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
Nous pouvons voir que la première ligne où la valeur dans la colonne des points est supérieure à 15 ou la valeur dans la colonne des passes décisives est supérieure à 10 est en position d’index 0.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment sélectionner des lignes sans valeurs NaN dans Pandas
Comment sélectionner des lignes en fonction des valeurs de colonne dans Pandas
Comment sélectionner des lignes uniques dans Pandas