Pandas : comment sélectionner des lignes en fonction des valeurs des colonnes



Vous pouvez utiliser l’une des méthodes suivantes pour sélectionner des lignes dans un DataFrame pandas en fonction des valeurs de colonne :

Méthode 1 : sélectionner les lignes où la colonne est égale à une valeur spécifique

df.loc[df['col1'] == value]

Méthode 2 : sélectionner les lignes où la valeur de la colonne se trouve dans la liste des valeurs

df.loc[df['col1'].isin([value1, value2, value3, ...])]

Méthode 3 : sélectionner des lignes en fonction de plusieurs conditions de colonnes

df.loc[(df['col1'] == value) & (df['col2'] < value)]

L’exemple suivant montre comment utiliser chaque méthode avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   'points': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12],
                   'blocks': [4, 7, 7, 6, 5, 8, 9, 10]})

#view DataFrame
df

	team	points	rebounds blocks
0	A	5	11	 4
1	A	7	8	 7
2	B	7	10	 7
3	B	9	6	 6
4	B	12	6	 5
5	C	9	5	 8
6	C	9	9	 9
7	C	4	12	 10

Méthode 1 : sélectionner les lignes où la colonne est égale à une valeur spécifique

Le code suivant montre comment sélectionner chaque ligne du DataFrame où la colonne « points » est égale à 7 :

#select rows where 'points' column is equal to 7
df.loc[df['points'] == 7]

	team	points	rebounds blocks
1	A	7	8	 7
2	B	7	10	 7

Méthode 2 : sélectionner les lignes où la valeur de la colonne se trouve dans la liste des valeurs

Le code suivant montre comment sélectionner chaque ligne du DataFrame où la colonne « points » est égale à 7, 9 ou 12 :

#select rows where 'points' column is equal to 7
df.loc[df['points'].isin([7, 9, 12])]

        team	points	rebounds blocks
1	A	7	8	 7
2	B	7	10	 7
3	B	9	6	 6
4	B	12	6	 5
5	C	9	5	 8
6	C	9	9	 9

Méthode 3 : sélectionner des lignes en fonction de plusieurs conditions de colonnes

Le code suivant montre comment sélectionner chaque ligne du DataFrame où la colonne « équipe » est égale à « B » et où la colonne « points » est supérieure à 8 :

#select rows where 'team' is equal to 'B' and points is greater than 8
df.loc[(df['team'] == 'B') & (df['points'] > 8)]

	team	points	rebounds blocks
3	B	9	6	 6
4	B	12	6	 5

Notez que seules les deux lignes où l’équipe est égale à « B » et où les « points » sont supérieurs à 8 sont renvoyées.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment sélectionner des lignes par index dans Pandas
Comment sélectionner des lignes uniques dans Pandas
Comment sélectionner les lignes où la valeur apparaît dans n’importe quelle colonne dans Pandas

Ajouter un commentaire

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