La funzione DataFrame.dropna() di Pandas per Python serve a rimuovere da un DataFrame tutte le righe o le colonne che contengono dati mancanti (NaN). Questa funzione ha quindi un ruolo fondamentale in particolare nella preparazione e pulizia dei dati.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

La sintassi di dropna() in Pandas

La funzione dropna() accetta fino a cinque parametri. La sintassi di base è particolarmente semplice:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

Parametri applicabili

Il comportamento della funzione DataFrame.dropna() di Pandas può essere modificato dai parametri assegnati. La tabella seguente contiene un riepilogo dei parametri più importanti:

Parametro Descrizione Valore predefinito
axis Determina se rimuovere le righe (0 o index) o le colonne (1 o columns) 0
how Specifica se tutti (all) o solo alcuni valori (any) devono essere NaN any
tresh Stabilisce il numero minimo di valori non NaN che una riga o una colonna deve avere per non essere rimossa; non combinabile con how opzionale
subset Determina le righe o colonne da prendere in considerazione opzionale
inplace Stabilisce se l’operazione viene eseguita nel DataFrame originale False
ignore_index Se True, gli assi restanti vengono etichettati da 0 a n-1 False

Applicazione di DataFrame.dropna() in Pandas

La funzione dropna() di Pandas è necessaria per pulire i dati prima dell’analisi, rimuovendo le righe o le colonne con valori mancanti. Questo approccio contribuisce a evitare distorsioni nelle valutazioni statistiche. Inoltre, in questo modo si semplifica la creazione di diagrammi e report, poiché in alcuni casi i valori mancanti possono portare a rappresentazioni errate.

Rimozione di righe con valori mancanti

Nell’esempio di codice seguente prendiamo in considerazione un DataFrame che contiene valori NaN:

import pandas as pd
import numpy as np
# Creazione di un DataFrame con dati di esempio
data = {
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
python

Il DataFrame si presenta così:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

Nel passaggio successivo applichiamo la funzione dropna() di Pandas:

## Rimozione di tutte le righe che contengono almeno un valore NaN
df_cleaned = df.dropna()
print(df_cleaned)
python

L’esecuzione del codice dà il seguente risultato:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Rimangono quindi solo la riga zero e la terza riga del DataFrame, perché tutte le altre righe contenevano valori NaN.

Rimozione di colonne con valori mancanti

La rimozione di colonne con valori mancanti funziona allo stesso modo. Non devi far altro che impostare su 1 il parametro axis della funzione:

## Rimozione di tutte le colonne che contengono almeno un valore NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
python

Il risultato mostra che è presente solo la colonna “C”, poiché è l’unica che non contiene un valore NaN:

C
0   9
1   10
2   11
3   12

Applicazione di thresh

Se desideri rimuovere solo le righe che hanno meno di due valori non NaN, puoi utilizzare il parametro thresh:

## Rimozione di tutte le righe con meno di due valori non NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
python

Dopo aver eseguito il codice, questa volta viene mantenuta anche la prima riga perché contiene due valori non NaN:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12

Applicazione di subset

Il parametro subset viene utilizzato per indicare le colonne specifiche in cui cercare i valori mancanti. Vengono rimosse solo le righe che presentano valori mancanti nelle colonne specificate.

## Rimozione di tutte le righe che contengono un valore NaN nella colonna "A":
df_subset = df.dropna(subset=['A'])
print(df_subset)
python

Come puoi notare, è stata rimossa solo la seconda riga. Il valore NaN nella prima riga viene ignorato sulla base del parametro impostato perché la colonna “B” non è stata presa in considerazione:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
Consiglio

Nella nostra Digital Guide trovi tanti altri articoli dedicati a Pandas come DataFrame in Pandas per Python e DataFrame.any() in Pandas per Python.

Hai trovato questo articolo utile?
Vai al menu principale