Pandas : obtenir l’index des lignes dont la colonne correspond à la valeur
Vous pouvez utiliser la syntaxe suivante pour obtenir l’index des lignes dans un DataFrame pandas dont la colonne correspond à des valeurs spécifiques :
df.index[df['column_name']==value].tolist()
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', 'D'], 'points': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team points rebounds 0 A 5 11 1 A 7 8 2 A 7 10 3 B 9 6 4 B 12 6 5 C 9 5 6 C 9 9 7 D 4 12
Exemple 1 : obtenir l’index des lignes dont la colonne correspond à la valeur
Le code suivant montre comment obtenir l’index des lignes dont une colonne est égale à une certaine valeur :
#get index of rows where 'points' column is equal to 7 df.index[df['points']==7].tolist() [1, 2]
Cela nous indique que les lignes avec les valeurs d’index 1 et 2 ont la valeur « 7 » dans la colonne des points.
Notez que nous pouvons également utiliser les opérateurs inférieur à et supérieur à pour trouver l’index des lignes où une colonne est inférieure ou supérieure à une certaine valeur :
#get index of rows where 'points' column is greater than 7 df.index[df['points']>7].tolist() [3, 4, 5, 6]
Cela nous indique que les lignes avec les valeurs d’index 3 , 4 , 5 et 6 ont une valeur supérieure à « 7 » dans la colonne des points.
Exemple 2 : obtenir l’index des lignes dont la colonne correspond à la chaîne
Le code suivant montre comment obtenir l’index des lignes où une colonne est égale à une certaine chaîne :
#get index of rows where 'team' column is equal to 'B' df.index[df['team']=='B'].tolist() [3, 4]
Cela nous indique que les lignes avec les valeurs d’index 3 et 4 ont la valeur « B » dans la colonne équipe.
Exemple 3 : obtenir l’index des lignes avec plusieurs conditions
Le code suivant montre comment obtenir l’index des lignes où les valeurs de plusieurs colonnes correspondent à certaines conditions :
#get index of rows where 'points' is equal to 7 or 12 df.index[(df['points']==7) | (df['points']==12)].tolist() [1, 2, 4] #get index of rows where 'points' is equal to 9 and 'team' is equal to 'B' df.index[(df['points']==9) & (df['team']=='B')].tolist() [3]
Ressources additionnelles
Comment obtenir la valeur d’une cellule à partir de Pandas DataFrame
Comment renommer l’index dans Pandas DataFrame
Comment trier les colonnes par nom dans Pandas