Gérer les doublons après une fusion (drop_duplicates())

Après une fusion de DataFrames, il est possible que des doublons apparaissent, surtout si plusieurs lignes de chaque DataFrame partagent des valeurs communes. La méthode drop_duplicates() permet de supprimer ces doublons dans le DataFrame résultant. Elle peut être utilisée pour conserver uniquement les lignes uniques en fonction de toutes les colonnes ou de certaines colonnes spécifiques.

Fonctions :

  • df.drop_duplicates()

    Supprime les lignes en double dans un DataFrame, en se basant sur les colonnes spécifiées ou l’ensemble des colonnes par défaut. Très utile après une fusion de DataFrames pour éviter les doublons.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    subset list ou str Colonnes sur lesquelles vérifier les doublons. Par défaut, toutes les colonnes sont utilisées. None
    keep {'first', 'last', False} Quel doublon garder : 'first' (premier), 'last' (dernier), ou False (aucun). 'first'
    inplace bool Si True, modifie le DataFrame directement sans retourner de copie. False
    ignore_index bool Si True, réinitialise l'index dans le DataFrame retourné. False

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrame après une fusion
    df = pd.DataFrame({
        'id': [1, 2, 2, 3, 4, 4],
        'valeur': ['A', 'B', 'B', 'C', 'D', 'D']
    })
    
    # Supprimer les doublons sur toutes les colonnes
    df_sans_doublons = df.drop_duplicates()
    
    print(df_sans_doublons)

    Explication du code :

    1. Le DataFrame df contient des lignes en double. Les doublons sont identifiés sur l’ensemble des colonnes, sauf si on précise subset.
    2. La méthode drop_duplicates() conserve par défaut la première occurrence de chaque doublon (équivalent à keep='first').
    3. Le résultat est un nouveau DataFrame sans doublons, mais l’original (df) reste inchangé car inplace=False par défaut.

    🔸 Remarques pratiques

    • Si tu veux vérifier uniquement sur une ou plusieurs colonnes, utilise subset.

    • Le paramètre keep='last' est utile si la dernière version de la ligne est la plus pertinente (ex : mise à jour d'une valeur).

    • Si tu veux supprimer absolument tous les doublons, y compris toutes les occurrences (aucune conservée), passe keep=False.

    • Le ignore_index=True est utile si tu veux réindexer proprement le DataFrame après suppression des doublons, surtout si tu vas afficher ou enregistrer les résultats.

    • ⚠️ Attention : inplace=True ne retourne rien (retourne None). Il modifie directement df.