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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd, 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 dictionnaire data est défini avec trois colonnes : Nom, Âge et Ville. 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éthode duplicated() est utilisée pour identifier les lignes dupliquées. Le paramètre subset=['Nom'] indique que la détection doit s’effectuer uniquement sur la colonne Nom. Le paramètre keep='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 (valeurs True). 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 colonne Nom.
    Affichage des doublons détectés
    La fonction print(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é.