Pandas : sélectionnez les lignes où deux colonnes sont égales



Vous pouvez utiliser les méthodes suivantes pour sélectionner des lignes dans un DataFrame pandas où deux colonnes sont (ou ne sont pas) égales :

Méthode 1 : sélectionner les lignes où deux colonnes sont égales

df.query('column1 == column2')

Méthode 2 : sélectionner les lignes dans lesquelles deux colonnes ne sont pas égales

df.query('column1 != column2') 

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'painting': ['A', 'B', 'C', 'D', 'E', 'F'],
                   'rater1': ['Good', 'Good', 'Bad', 'Bad', 'Good', 'Good'],
                   'rater2': ['Good', 'Bad', 'Bad', 'Good', 'Good', 'Good']})

#view DataFrame
print(df)

  painting rater1 rater2
0        A   Good   Good
1        B   Good    Bad
2        C    Bad    Bad
3        D    Bad   Good
4        E   Good   Good
5        F   Good   Good

Exemple 1 : sélectionner des lignes où deux colonnes sont égales

Nous pouvons utiliser la syntaxe suivante pour sélectionner uniquement les lignes du DataFrame où les valeurs des colonnes rater1 et rater2 sont égales :

#select rows where rater1 is equal to rater2
df.query('rater1 == rater2')

 painting  rater1  rater2
0	A    Good    Good
2	C     Bad     Bad
4	E    Good    Good
5	F    Good    Good

Notez que seules les lignes où rater1 et rater2 sont égaux sont sélectionnées.

Nous pourrions également utiliser la fonction len() si nous voulons simplement compter combien de lignes ont des valeurs égales dans les colonnes rater1 et rater2 :

#count the number of rows where rater1 is equal to rater2
len(df.query('rater1 == rater2'))

4

Cela nous indique qu’il y a 4 lignes où les valeurs des colonnes rater1 et rater2 sont égales.

Exemple 2 : sélectionner des lignes dans lesquelles deux colonnes ne sont pas égales

Nous pouvons utiliser la syntaxe suivante pour sélectionner uniquement les lignes du DataFrame où les valeurs des colonnes rater1 et rater2 ne sont pas égales :

#select rows where rater1 is not equal to rater2
df.query('rater1 != rater2')

 painting  rater1  rater2
1	B    Good     Bad
3	D     Bad    Good

Notez que seules les lignes où rater1 et rater2 ne sont pas égaux sont sélectionnées.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Comment renommer des colonnes dans Pandas
Comment ajouter une colonne à un DataFrame Pandas
Comment modifier l’ordre des colonnes dans Pandas DataFrame

Ajouter un commentaire

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