Pulizia dei dati con dropna() in Pandas
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.
- 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)
pythonParametri 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)
pythonIl 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)
pythonL’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)
pythonIl 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)
pythonDopo 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)
pythonCome 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
Nella nostra Digital Guide trovi tanti altri articoli dedicati a Pandas come DataFrame in Pandas per Python e DataFrame.any() in Pandas per Python.