Rimuovi NaN dall'lista in Python
-
Rimuovere
NaNdall’lista in Python utilizzando il metodomath.isnan() -
Rimuovere
NaNdall’lista in Python utilizzando il metodonumpy.isnan() -
Rimuovere
NaNdall’lista di stringhe in Python -
Rimuovere
NaNdall’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