Éliminer les doublons
L’élimination des doublons est une étape cruciale dans le processus de préparation des données. Les doublons, c’est-à-dire des lignes identiques ou très similaires présentes plusieurs fois dans un jeu de données, peuvent fausser les analyses, gonfler artificiellement les moyennes ou les totaux, et introduire des biais dans les modèles statistiques ou prédictifs.
Après avoir détecté la présence de doublons, il est souvent nécessaire de les supprimer afin de garantir que chaque enregistrement est unique et représentatif. Cette opération est particulièrement importante dans les bases de données de clients, d’événements ou de transactions, où l’unicité des lignes est attendue.
Avec Python et la bibliothèque pandas
, il est facile d’éliminer les doublons grâce à la méthode drop_duplicates()
, qui permet de supprimer automatiquement les entrées répétées. Elle offre également la possibilité de conserver la première ou la dernière occurrence de chaque doublon, ou de spécifier des colonnes particulières sur lesquelles appliquer la déduplication.
Dans cette page, vous apprendrez à éliminer les doublons de manière précise et contrôlée, en fonction du contexte de vos données, avec des exemples concrets pour éviter toute perte d’information pertinente.
Fonctions :
-
drop_duplicates()
La fonction drop_duplicates() permet de supprimer les lignes en double dans un DataFrame, en fonction des colonnes spécifiées. Elle renvoie un DataFrame sans doublons. Par défaut, seules les premières occurrences sont conservées, mais ce comportement peut être modifié avec l'argument keep.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut subset
str, list Liste de colonnes à considérer pour la suppression des 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) # Supprimer les doublons uniquement sur la colonne 'Nom', en gardant la dernière occurrence df_sans_doublons_nom = df.drop_duplicates(subset=['Nom'], keep='last') # Afficher le DataFrame sans doublons pour la colonne 'Nom' print(df_sans_doublons_nom)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
, afin de manipuler des 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 valeurs sont répétées pour illustrer la suppression de doublons.df = pd.DataFrame(data)
transforme ce dictionnaire en un DataFrame nommédf
.Suppression des doublons sur une colonne spécifique
La méthodedrop_duplicates()
est utilisée pour supprimer les lignes en double. Le paramètresubset=['Nom']
indique que la suppression doit se faire uniquement en se basant sur la colonneNom
. Le paramètrekeep='last'
permet de conserver la dernière occurrence de chaque nom, tandis que les occurrences précédentes sont supprimées.df_sans_doublons_nom = df.drop_duplicates(subset=['Nom'], keep='last')
crée un nouveau DataFrame sans doublons sur la colonneNom
.Affichage du DataFrame sans doublons
La fonctionprint(df_sans_doublons_nom)
affiche le nouveau DataFrame, dans lequel seules les dernières occurrences des noms en double sont conservées.