Vai al contenuto principale

Esercitazione su drop_duplicates in Pandas

Scopri come eliminare i duplicati in Python usando pandas.
Aggiornato 29 set 2026  · 4 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Rimuovere i duplicati è fondamentale per ottenere conteggi accurati, perché spesso non vuoi contare la stessa cosa più volte. In Python, puoi farlo con il modulo Pandas, che include un metodo chiamato drop_duplicates.

Vediamo come usarlo con alcuni esempi.

Eliminare i nomi duplicati

Immagina di avere un dataframe con le visite dal veterinario e che lo studio voglia sapere quanti cani di ogni razza hanno fatto visita. Tuttavia, nel dataset ci sono cani come Max e Stella che hanno fatto più di una visita. Perciò non puoi semplicemente contare il numero di occorrenze di ciascuna razza nella colonna della razza.

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

Per riuscirci, devi rimuovere le righe che contengono un nome di cane già comparso in precedenza; in altre parole, estrarrai dal dataset un solo cane per ciascun nome.

Puoi farlo con il metodo drop_duplicates. Accetta un argomento subset, ovvero la colonna su cui vogliamo individuare i duplicati: in questo caso ci servono tutti i nomi unici.

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)

Ma cosa succede se ci sono cani con lo stesso nome?

Eliminare le coppie duplicate

In quel caso dobbiamo considerare più di name quando eliminiamo i duplicati. Poiché i due Max sono di razze diverse, possiamo eliminare le righe con coppie di nome e razza già presenti in precedenza nel dataset.

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

Per basare l'eliminazione dei duplicati su più colonne, possiamo passare un elenco di nomi di colonne all'argomento subset; in questo caso, name e breed.

Ora entrambi i Max sono inclusi.

Esempio interattivo

In questo esercizio creerai alcuni nuovi DataFrame usando valori unici da sales. sales è disponibile e pandas è importato come pd.

Eseguirai i seguenti passaggi:

  • Per prima cosa, rimuovi da sales le righe con coppie duplicate di store e type, salvale come store_types e stampa l'head.
  • Poi rimuovi da sales le righe con coppie duplicate di store e department, salvale come store_depts e stampa l'head.
  • Filtra le righe che sono settimane festive e rimuovi le date duplicate, salvando il risultato come holiday_dates.
  • Infine, seleziona la colonna date di holiday_dates e stampa il dataframe holiday_dates.
# Drop duplicate store/type combinations
store_types = sales.drop_duplicates(subset=["store", "type"])
print(store_types.head())

# Drop duplicate store/department combinations
store_depts = sales.drop_duplicates(subset=["store", "department"])
print(store_depts.head())

# Subset the rows that are holiday weeks and drop duplicate dates
holiday_dates = sales[sales["is_holiday"]].drop_duplicates(subset="date")

# Print date col of holiday_dates
print(holiday_dates["date"])

Eseguendo il codice sopra, si ottiene il seguente risultato:

      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]

Provalo tu stesso.

Per saperne di più sul conteggio e l'aggregazione dei dati, guarda questo video del nostro corso Data Manipulation with pandas.

Questo contenuto è tratto dal corso Data Manipulation with pandas di DataCamp, a cura di Maggie Matsui e Richie Cotton.

Argomenti
Python

Approfondisci Python e pandas

{count, plural, one {Corso} other {Corsi}}

Manipolazione dei dati con pandas

{hours} ore
566.6K
Impara a importare e pulire dati, calcolare statistiche e creare visualizzazioni con pandas.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

{count, plural, one {blog} other {blogs}}

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

{count, plural, one {blog} other {blogs}}

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

{count, plural, one {blog} other {blogs}}

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro