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 :
- Le DataFrame
df
contient des lignes en double. Les doublons sont identifiés sur l’ensemble des colonnes, sauf si on précisesubset
. - La méthode
drop_duplicates()
conserve par défaut la première occurrence de chaque doublon (équivalent àkeep='first'
). - Le résultat est un nouveau DataFrame sans doublons, mais l’original (
df
) reste inchangé carinplace=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 (retourneNone
). Il modifie directementdf
.
- Le DataFrame