Verifica i valori NaN in Python

Manav Narula 30 gennaio 2023
  1. Usa la funzione math.isnan() per controllare i valori nan in Python
  2. Usa la funzione numpy.isnan() per controllare i valori nan in Python
  3. Usa la funzione pandas.isna() per controllare i valori nan in Python
  4. Usa obj != obj per controllare i valori nan in Python
Verifica i valori NaN in Python

Il nan è una costante che indica che il valore dato non è legale - Not a Number.

Nota che nan e NULL sono due cose diverse. Il valore NULL indica qualcosa che non esiste ed è vuoto.

In Python, trattiamo tali valori molto frequentemente in oggetti diversi. Quindi è necessario rilevare tali costanti.

In Python, abbiamo la funzione isnan(), che può controllare i valori nan. E questa funzione è disponibile in due moduli: NumPy e math. La funzione isna() nel modulo pandas può anche controllare i valori nan.

Usa la funzione math.isnan() per controllare i valori nan in Python

La funzione isnan() nella libreria math può essere usata per controllare le costanti nan negli oggetti float. Restituisce True per ogni valore di questo tipo riscontrato. Per esempio:

import math
import numpy as np

b = math.nan
print(np.isnan(b))

Produzione:

True

Nota che la costante math.nan rappresenta un valore nan.

Usa la funzione numpy.isnan() per controllare i valori nan in Python

La funzione numpy.isnan() può controllare in diverse raccolte come liste, array e altro per i valori nan. Controlla ogni elemento e restituisce un array con True ogniqualvolta incontra le costanti nan. Per esempio:

import numpy as np

a = np.array([5, 6, np.NaN])

print(np.isnan(a))

Produzione:

[False False  True]

La costante np.NaN() rappresenta anche un valore nan.

Usa la funzione pandas.isna() per controllare i valori nan in Python

La funzione isna() nel modulo pandas può rilevare i valori NULL o nan. Restituisce True per tutti questi valori rilevati. Può controllare tali valori anche in un oggetto DataFrame o Series. Per esempio,

import pandas as pd
import numpy as np

ser = pd.Series([5, 6, np.NaN])

print(pd.isna(ser))

Produzione:

0    False
1    False
2     True
dtype: bool

Usa obj != obj per controllare i valori nan in Python

Per qualsiasi oggetto tranne nan, l’espressione obj == obj restituisce sempre True. Per esempio,

print([] == [])
print("1" == "1")
print([1, 2, 3] == [1, 2, 3])
print(float("nan") == float("nan"))

Pertanto, potremmo usare obj != obj per verificare se il valore è nan. È nan se il valore restituito è True.

import math

b = math.nan


def isNaN(num):
    return num != num


print(isNaN(b))

Produzione:

True

Questo metodo, tuttavia, potrebbe non riuscire con versioni precedenti di Python (<= Python 2.5).

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Python Math