Comment trouver des doublons dans Pandas DataFrame (avec exemples)
Vous pouvez utiliser la fonction duplicated() pour rechercher des valeurs en double dans un DataFrame pandas.
Cette fonction utilise la syntaxe de base suivante :
#find duplicate rows across all columns duplicateRows = df[df.duplicated()] #find duplicate rows across specific columns duplicateRows = df[df.duplicated(['col1', 'col2'])]
Les exemples suivants montrent comment utiliser cette fonction en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'points': [10, 10, 12, 12, 15, 17, 20, 20], 'assists': [5, 5, 7, 9, 12, 9, 6, 6]}) #view DataFrame print(df) team points assists 0 A 10 5 1 A 10 5 2 A 12 7 3 A 12 9 4 B 15 12 5 B 17 9 6 B 20 6 7 B 20 6
Exemple 1 : rechercher des lignes en double dans toutes les colonnes
Le code suivant montre comment rechercher les lignes en double dans toutes les colonnes du DataFrame :
#identify duplicate rows
duplicateRows = df[df.duplicated()]
#view duplicate rows
duplicateRows
team points assists
1 A 10 5
7 B 20 6
Il existe deux lignes qui sont des doublons exacts d’autres lignes du DataFrame.
Notez que nous pouvons également utiliser l’argument keep=’last’ pour afficher les premières lignes en double au lieu de la dernière :
#identify duplicate rows
duplicateRows = df[df.duplicated(keep='last')]
#view duplicate rows
print(duplicateRows)
team points assists
0 A 10 5
6 B 20 6
Exemple 2 : rechercher des lignes en double dans des colonnes spécifiques
Le code suivant montre comment rechercher les lignes en double uniquement dans les colonnes « équipe » et « points » du DataFrame :
#identify duplicate rows across 'team' and 'points' columns
duplicateRows = df[df.duplicated(['team', 'points'])]
#view duplicate rows
print(duplicateRows)
team points assists
1 A 10 5
3 A 12 9
7 B 20 6
Il y a trois lignes où les valeurs des colonnes « équipe » et « points » sont des copies exactes des lignes précédentes.
Exemple 3 : Rechercher des lignes en double dans une colonne
Le code suivant montre comment rechercher les lignes en double uniquement dans la colonne « équipe » du DataFrame :
#identify duplicate rows in 'team' column
duplicateRows = df[df.duplicated(['team'])]
#view duplicate rows
print(duplicateRows)
team points assists
1 A 10 5
2 A 12 7
3 A 12 9
5 B 17 9
6 B 20 6
7 B 20 6
Il y a six lignes au total où les valeurs de la colonne « équipe » sont des doublons exacts des lignes précédentes.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment supprimer les lignes en double dans Pandas
Comment supprimer les colonnes en double dans Pandas
Comment sélectionner des colonnes par index dans Pandas