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

Corso

Manipolazione dei dati con pandas

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

blog

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

blog

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

blog

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