Détecter les doublons
Les doublons, ou entrées dupliquées, représentent un problème fréquent dans les jeux de données, notamment lorsqu’ils sont issus de plusieurs sources, de collectes automatiques ou de saisies manuelles. Ils peuvent fausser les analyses statistiques, biaiser les modèles de machine learning et conduire à des interprétations erronées.
Détecter les doublons est une étape essentielle dans tout processus de nettoyage de données. Cela consiste à identifier les lignes répétées entièrement ou partiellement dans un DataFrame. Certaines données peuvent sembler différentes à première vue, mais être identiques du point de vue analytique (ex : mêmes noms avec casse ou espaces différents).
La bibliothèque pandas
de Python offre des fonctions efficaces pour détecter et manipuler les doublons, comme duplicated()
pour marquer les lignes répétées et drop_duplicates()
pour les supprimer.
Dans cette page, vous apprendrez à détecter les doublons complets ou partiels, à les visualiser, et à prendre des décisions informées sur leur traitement. Des exemples pratiques illustreront comment conserver les bonnes versions des données et éviter les pièges classiques lors du dédoublonnage.
Fonctions :
-
duplicated()
La fonction duplicated() permet de détecter les lignes du DataFrame qui sont des doublons (c'est-à-dire identiques aux lignes précédentes). Elle renvoie une série booléenne, où True indique que la ligne est un doublon et False indique que la ligne est unique.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut subset
str, list Liste de colonnes à considérer pour détecter les doublons. Si non spécifié, toutes les colonnes sont utilisées. -
keep
str Détermine quelle occurrence des doublons garder : 'first'
,'last'
,'False'
-
Exemple de code :
import pandas as pd # Création d'un DataFrame exemple avec des doublons data = { 'Nom': ['Alice', 'Bob', 'Charlie', 'Bob', 'Alice'], 'Âge': [24, 27, 35, 27, 24], 'Ville': ['Paris', 'Lyon', 'Paris', 'Lyon', 'Paris'] } df = pd.DataFrame(data) # Détecter les doublons uniquement sur la colonne 'Nom' et garder la dernière occurrence doublons_nom = df.duplicated(subset=['Nom'], keep='last') # Afficher les doublons détectés print(doublons_nom)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
, afin de faciliter la création et la manipulation de structures de données comme les DataFrames.Création d’un DataFrame avec des doublons
Un dictionnairedata
est défini avec trois colonnes :Nom
,Âge
etVille
. Certaines entrées sont volontairement dupliquées pour illustrer la détection de doublons.df = pd.DataFrame(data)
convertit ce dictionnaire en un DataFrame nommédf
.Détection de doublons sur une colonne spécifique
La méthodeduplicated()
est utilisée pour identifier les lignes dupliquées. Le paramètresubset=['Nom']
indique que la détection doit s’effectuer uniquement sur la colonneNom
. Le paramètrekeep='last'
signifie que la dernière occurrence d’un doublon est conservée comme référence, et les précédentes seront marquées comme doublons (valeursTrue
).doublons_nom = df.duplicated(subset=['Nom'], keep='last')
crée une série booléenne où chaque valeur indique si la ligne correspondante est considérée comme un doublon sur la colonneNom
.Affichage des doublons détectés
La fonctionprint(doublons_nom)
affiche la série résultante, ce qui permet de repérer facilement les lignes en double selon le critère spécifié.