Rimuovi NaN dall'lista in Python
-
Rimuovere
NaN
dall’lista in Python utilizzando il metodomath.isnan()
-
Rimuovere
NaN
dall’lista in Python utilizzando il metodonumpy.isnan()
-
Rimuovere
NaN
dall’lista di stringhe in Python -
Rimuovere
NaN
dall’lista in Python usando il metodopandas.isnull()
Questo tutorial esaminerà vari metodi per trovare e rimuovere i valori NaN
dall’lista in Python. Il valore NaN
nella programmazione significa Not a Number
, il che significa che il valore della variabile non è un numero.
Se un valore NaN
compare in un array o in una lista, può creare problemi ed errori nei calcoli. In questo tutorial esamineremo anche i modi per rimuovere i valori di stringa nan
dall’lista. Possiamo rimuovere i valori NaN
o 'nan'
dall’lista, utilizzando i seguenti metodi.
Rimuovere NaN
dall’lista in Python utilizzando il metodo math.isnan()
Il metodo math.isnan(value)
prende un numero value
come input e restituisce True
se il value
è un valore NaN
e restituisce False
in caso contrario. Quindi possiamo controllare se c’è un valore NaN
in una lista o in un array di numeri usando il metodo math.isnan()
.
Abbiamo bisogno del metodo math.isnan()
perché if float('NaN') == float('NaN')
restituisce False
in Python oppure possiamo dire che due valori NaN
non sono uguali in Python . Il codice di esempio sotto mostra come utilizzare il metodo math.isnan()
per rimuovere il valore NaN
dall’lista.
import math
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if math.isnan(x) == False]
print(newlist)
Produzione:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Rimuovere NaN
dall’lista in Python utilizzando il metodo numpy.isnan()
Il metodo np.isnan(array)
, accetta array
come input e restituisce True
per l’indice corrispondente se è il valore NaN
e restituisce False
in caso contrario.
Il codice di esempio sotto mostra come rimuovere i valori NaN
dall’lista utilizzando il metodo numpy.isnan()
:
import numpy as np
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if np.isnan(x) == False]
print(newlist)
Produzione:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Rimuovere NaN
dall’lista di stringhe in Python
Supponiamo ora che l’lista dei numeri sia convertito in tipo stringa e di voler controllare se contiene valori NaN
. Dopo la conversione nel tipo stringa, il valore NaN
diventa una stringa uguale a 'nan'
e può essere facilmente rilevato e rimosso confrontandolo con 'nan'
.
Il codice di esempio seguente mostra come rimuovere il valore NaN
dall’lista del tipo di dati stringa:
mylist = [1, 2, "nan", 8, 6, 4, "nan"]
mylist = [str(x) for x in mylist]
print(mylist)
newlist = [x for x in mylist if x != "nan"]
print(newlist)
Produzione:
['1', '2', 'nan', '8', '6', '4', 'nan']
['1', '2', '8', '6', '4']
Rimuovere NaN
dall’lista in Python usando il metodo pandas.isnull()
Il pandas.isnull(obj)
accetta un obj
scalare o simile a un array come input e restituisce True
se il valore è uguale a NaN
, None
o NaT
; in caso contrario, restituisce False
.
Il codice di esempio mostra come utilizzare il metodo pandas.isnull()
per rimuovere i valori NaN
dall’lista di Python.
import pandas as pd
mylist = [1, 2, float("nan"), 8, float("nan"), 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False]
print(newlist)
Produzione:
[1, 2, nan, 8, nan, 4, nan]
[1, 2, 8, 4]
Supponiamo ora di non conoscere il tipo di lista o se l’lista contiene i dati di vari tipi di dati. In questo caso, possiamo controllare e rimuovere i valori NaN
e 'nan'
dalla lista usando il metodo pandas.isnull()
confrontando ogni valore dell’lista con il valore 'nan'
.
Possiamo usare il metodo pandas.isnull()
perché, a differenza dei metodi menzionati in precedenza, il metodo pandas.isnull()
non restituisce un errore se il tipo di dati stringa è dato come input. Quindi possiamo usare il metodo pandas.isnull()
per rimuovere il valore NaN
e 'nan'
dalla lista o da un array in Python.
Il codice di esempio sotto mostra come usare il metodo pandas.isnull()
e il valore 'nan'
per rimuovere i valori NaN
e 'nan'
dall’lista in Python.
import pandas as pd
mylist = ["John", 23, "nan", "New York", float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False and x != "nan"]
print(newlist)
Produzione:
['John', 23, 'nan', 'New York', nan]
['John', 23, 'New York']
Articolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python