Comment comparer trois colonnes dans Pandas (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour comparer les valeurs de trois colonnes dans pandas :
df['all_matching'] = df.apply(lambda x: x.col1 == x.col2 == x.col3, axis = 1)
Cette syntaxe crée une nouvelle colonne appelée all_matching qui renvoie la valeur True si toutes les colonnes ont des valeurs correspondantes, sinon elle renvoie False .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : comparer trois colonnes dans Pandas
Supposons que nous ayons le DataFrame pandas suivant avec trois colonnes :
import pandas as pd #create DataFrame df = pd.DataFrame({'A': [4, 0, 3, 3, 6, 8, 7, 9, 12], 'B': [4, 2, 3, 5, 6, 4, 7, 7, 12], 'C': [4, 0, 3, 5, 5, 10, 7, 9, 12]}) #view DataFrame print(df) A B C 0 4 4 4 1 0 2 0 2 3 3 3 3 3 5 5 4 6 6 5 5 8 4 10 6 7 7 7 7 9 7 9 8 12 12 12
Nous pouvons utiliser le code suivant pour créer une nouvelle colonne appelée all_matching qui renvoie True si les trois colonnes correspondent dans une ligne donnée et False si ce n’est pas le cas :
#create new column that displays whether or not all column values match df['all_matching'] = df.apply(lambda x: x.A == x.B == x.C, axis = 1) #view updated DataFrame print(df) A B C all_matching 0 4 4 4 True 1 0 2 0 False 2 3 3 3 True 3 3 5 5 False 4 6 6 5 False 5 8 4 10 False 6 7 7 7 True 7 9 7 9 False 8 12 12 12 True
La nouvelle colonne appelée all_matching indique si les valeurs des trois colonnes correspondent ou non dans une ligne donnée.
Par exemple:
- Les trois valeurs correspondent dans la première ligne, donc True est renvoyé.
- Toutes les valeurs ne correspondent pas à la deuxième ligne, donc False est renvoyé.
Et ainsi de suite.
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