Accéder au contenu principal

Tutoriel pandas drop_duplicates

Apprenez à supprimer les doublons en Python avec pandas.
Actualisé 19 sept. 2026  · 4 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Supprimer les doublons est indispensable pour obtenir des comptages fiables, car vous ne voulez généralement pas compter la même chose plusieurs fois. En Python, vous pouvez le faire avec le module pandas, qui propose la méthode drop_duplicates.

Voyons comment l'utiliser à travers quelques exemples.

Supprimer les doublons de noms

Supposons que vous ayez un DataFrame qui recense des visites chez le vétérinaire, et que le cabinet souhaite connaître combien de chiens de chaque race ont été vus. Dans votre jeu de données, certains chiens comme Max et Stella sont venus plusieurs fois. Vous ne pouvez donc pas simplement compter les occurrences de chaque race dans la colonne des races.

print(vet_visits)
          date     name        breed  weight_kg
0   2018-09-02    Bella     Labrador      24.87
1   2019-06-07      Max     Labrador      28.35
2   2018-01-17   Stella    Chihuahua       1.51
3   2019-10-19     Lucy    Chow Chow      24.07
..         ...      ...          ...        ...
71  2018-01-20   Stella    Chihuahua       2.83
72  2019-06-07      Max    Chow Chow      24.01
73  2018-08-20     Lucy    Chow Chow      24.40
74  2019-04-22      Max     Labrador      28.54

Pour y parvenir, vous allez retirer les lignes où le nom du chien est déjà apparu plus tôt ; autrement dit, vous n'extrairez qu'un chien par nom dans l'ensemble de données.

On utilise pour cela la méthode drop_duplicates. Elle prend un argument subset, qui indique la ou les colonnes sur lesquelles détecter les doublons — ici, nous voulons obtenir tous les noms uniques.

vet_visits.drop_duplicates(subset="name")
          date     name        breed  weight_kg
0   2018-09-02    Bella     Labrador      24.87
1   2019-06-07      Max    Chow Chow      24.01
2   2019-03-19  Charlie       Poodle      24.95
3   2018-01-17   Stella    Chihuahua       1.51
4   2019-10-19     Lucy    Chow Chow      24.07
7   2019-03-30   Cooper    Schnauzer      16.91
10  2019-01-04   Bernie  St. Bernard      74.98
(6  2019-06-07      Max     Labrador      28.35)

Mais que faire si plusieurs chiens portent le même nom ?

Supprimer les paires en doublon

Dans ce cas, il faut tenir compte de plus que la seule colonne name. Comme les deux Max n'ont pas la même race, on peut supprimer les lignes en se basant sur la paire nom + race déjà rencontrée plus tôt dans le jeu de données.

unique_dogs = vet_visits.drop_duplicates(subset=["name", "breed"])
print(unique_dogs)
          date     name        breed  weight_kg
0   2018-09-02    Bella     Labrador      24.87
1   2019-03-13      Max    Chow Chow      24.13
2   2019-03-19  Charlie       Poodle      24.95
3   2018-01-17   Stella    Chihuahua       1.51
4   2019-10-19     Lucy    Chow Chow      24.07
6   2019-06-07      Max     Labrador      28.35
7   2019-03-30   Cooper    Schnauzer      16.91
10  2019-01-04   Bernie  St. Bernard      74.98

Pour supprimer les doublons sur plusieurs colonnes, on passe une liste de noms de colonnes à l'argument subset, ici name et breed.

Les deux Max sont maintenant conservés.

Exemple interactif

Dans cet exercice, vous allez créer de nouveaux DataFrames à partir des valeurs uniques de sales. sales est disponible et pandas est importé sous l'alias pd.

Vous effectuerez les étapes suivantes :

  • Commencez par supprimer de sales les lignes avec des paires en doublon store et type, enregistrez le résultat dans store_types et affichez l'en-tête.
  • Ensuite, supprimez de sales les lignes avec des paires en doublon store et department, enregistrez le résultat dans store_depts et affichez l'en-tête.
  • Sous-sélectionnez les lignes correspondant aux semaines fériées et supprimez les dates en doublon, puis enregistrez le résultat dans holiday_dates.
  • Enfin, sélectionnez la colonne date de holiday_dates et affichez le DataFrame holiday_dates.
# Supprimer les combinaisons en doublon store/type
store_types = sales.drop_duplicates(subset=["store", "type"])
print(store_types.head())

# Supprimer les combinaisons en doublon store/department
store_depts = sales.drop_duplicates(subset=["store", "department"])
print(store_depts.head())

# Ne garder que les semaines fériées et supprimer les dates en doublon
holiday_dates = sales[sales["is_holiday"]].drop_duplicates(subset="date")

# Afficher la colonne date de holiday_dates
print(holiday_dates["date"])

À l'exécution, le code ci-dessus produit le résultat suivant :

      store type  department       date  weekly_sales  is_holiday  temperature_c  fuel_price_usd_per_l  unemployment
0         1    A           1 2010-02-05      24924.50       False          5.728                 0.679         8.106
901       2    A           1 2010-02-05      35034.06       False          4.550                 0.679         8.324
1798      4    A           1 2010-02-05      38724.42       False          6.533                 0.686         8.623
2699      6    A           1 2010-02-05      25619.00       False          4.683                 0.679         7.259
3593     10    B           1 2010-02-05      40212.84       False         12.411                 0.782         9.765
    store type  department       date  weekly_sales  is_holiday  temperature_c  fuel_price_usd_per_l  unemployment
0       1    A           1 2010-02-05      24924.50       False          5.728                 0.679         8.106
12      1    A           2 2010-02-05      50605.27       False          5.728                 0.679         8.106
24      1    A           3 2010-02-05      13740.12       False          5.728                 0.679         8.106
36      1    A           4 2010-02-05      39954.04       False          5.728                 0.679         8.106
48      1    A           5 2010-02-05      32229.38       False          5.728                 0.679         8.106
498    2010-09-10
691    2011-11-25
2315   2010-02-12
6735   2012-09-07
6810   2010-12-31
6815   2012-02-10
6820   2011-09-09
Name: date, dtype: datetime64[ns]

Essayez par vous-même.

Pour en savoir plus sur le comptage et l'agrégation des données, regardez cette vidéo issue de notre cours Data Manipulation with pandas.

Ce contenu est extrait du cours Data Manipulation with pandas de DataCamp, par Maggie Matsui et Richie Cotton.

Sujets
Python

Approfondissez Python et pandas

Cours

Manipulation de données avec pandas

4 h
564K
Apprenez à importer et nettoyer des données, calculer des statistiques et créer des visualisations avec pandas.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow