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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *