Introduzione
In questo tutorial, imparerai come utilizzare la funzione DataFrame dropna()
di panda.
I valori NA
sono “Non disponibili”. Questo può applicarsi a Null
, None
, pandas.NaT
, o numpy.nan
. Utilizzando dropna()
verranno eliminati le righe e le colonne con questi valori. Questo può essere utile per fornirti solo dati validi.
Per default, questa funzione restituisce un nuovo DataFrame e il DataFrame di origine rimane invariato.
Questo tutorial è stato verificato con Python 3.10.9, pandas 1.5.2 e NumPy 1.24.1.
Sintassi
dropna()
accetta i seguenti parametri:
axis
:{0 (o 'indice'), 1 (o 'colonne')}, predefinito 0
- Se
0
, elimina le righe con valori mancanti. - Se
1
, elimina le colonne con valori mancanti. how
:{'any', 'all'}, predefinito 'any'
- Se
'any'
, elimina la riga o la colonna se uno qualsiasi dei valori èNA
. - Se
'all'
, elimina la riga o la colonna se tutti i valori sonoNA
. thresh
: (opzionale) un valoreint
per specificare la soglia per l’operazione di eliminazione.subset
: (opzionale) etichetta di colonna o sequenza di etichette per specificare righe o colonne.inplace
: (opzionale) un valorebool
.- Se
True
, il DataFrame di origine viene modificato e viene restituitoNone
.
Costruzione dei DataFrame di esempio
Costruisci un DataFrame di esempio che contiene valori validi e non validi:
Questo codice stamperà il DataFrame:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
Poi aggiungi un secondo DataFrame con righe e colonne aggiuntive con valori NA
:
Questo produrrà un nuovo DataFrame:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
Utilizzerai i DataFrame precedenti negli esempi che seguono.
Eliminazione di tutte le righe con valori mancanti
Utilizza dropna()
per rimuovere le righe con qualsiasi valore None
, NaN
, o NaT
:
Questo produrrà:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
Eliminazione di tutte le colonne con valori mancanti
Utilizzare dropna()
con axis=1
per rimuovere le colonne con qualsiasi valore None
, NaN
, o NaT
:
Le colonne con qualsiasi valore None
, NaN
, o NaT
saranno eliminate:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
Eliminazione righe o colonne se tutti
i valori sono Nulli
con how
Utilizzare il secondo DataFrame e how
:
Le righe con tutti
i valori uguali a NA
saranno eliminate:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
La quinta riga è stata eliminata.
Successivamente, utilizzare how
e specificare l’asse
:
Le colonne con tutti
i valori uguali a NA
saranno eliminate:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
La quinta colonna è stata eliminata.
Eliminazione righe o colonne se viene superata una soglia con thresh
Usa il secondo DataFrame con thresh
per eliminare le righe che non soddisfano la soglia di almeno 3
valori non NA
:
Le righe che non hanno almeno 3
valori non NA
saranno eliminate:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
La terza, quarta e quinta riga sono state eliminate.
Eliminazione righe o colonne per subset
specifici
Usa il secondo DataFrame con subset
per eliminare le righe con valori NA
nella colonna Population
:
Le righe che hanno valori NA
nella colonna Population
saranno eliminate:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
La terza, quarta e quinta riga sono state eliminate.
Puoi anche specificare i valori dell’index
nel subset
quando elimini le colonne dal DataFrame:
Le colonne che contengono valori NA
nel subset delle righe 1
e 2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
La terza, quarta e quinta colonna sono state eliminate.
Cambiare il DataFrame di origine dopo l’eliminazione di righe o colonne con inplace
Per default, dropna()
non modifica il DataFrame di origine. Tuttavia, in alcuni casi, potresti voler risparmiare memoria quando lavori con un grande DataFrame di origine utilizzando inplace
.
Questo codice non utilizza una variabile dfresult
.
Questo produrrà in output:
OutputName ID Population Regions
0 Shark 1 100 1
Il DataFrame originale è stato modificato.
Conclusione
In questo articolo, hai utilizzato la funzione dropna()
per rimuovere righe e colonne con valori NA
.
Continua il tuo apprendimento con altri tutorial su Python e pandas – Tutorial sul modulo pandas di Python, Eliminazione di righe duplicate in pandas.
Riferimenti
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe