Verifique os valores NaN em Python

Manav Narula 30 janeiro 2023
  1. Use a função math.isnan() para verificar os valores nan em Python
  2. Use a função numpy.isnan() para verificar os valores nan em Python
  3. Use a função pandas.isna() para verificar os valores nan em Python
  4. Use o obj != obj para verificar os valores nan em Python
Verifique os valores NaN em Python

O nan é uma constante que indica que o valor fornecido não é legal - Not a Number.

Observe que nan e NULL são duas coisas diferentes. O valor NULL indica algo que não existe e está vazio.

Em Python, lidamos com esses valores com muita frequência em objetos diferentes. Portanto, é necessário detectar tais constantes.

Em Python, temos a função isnan(), que pode verificar os valores nan. E esta função está disponível em dois módulos - NumPy e math. A função isna() no módulo pandas também pode verificar os valores nan.

Use a função math.isnan() para verificar os valores nan em Python

A função isnan() na biblioteca math pode ser usada para verificar as constantes nan em objetos flutuantes. Ele retorna True para cada valor encontrado. Por exemplo:

import math
import numpy as np

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

Resultado:

True

Observe que a constante math.nan representa um valor nan.

Use a função numpy.isnan() para verificar os valores nan em Python

A função numpy.isnan() pode verificar em diferentes coleções, como listas, arrays e muito mais, os valores nan. Ele verifica cada elemento e retorna um array com True sempre que encontra constantes nan. Por exemplo:

import numpy as np

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

print(np.isnan(a))

Resultado:

[False False  True]

A constante np.NaN() representa também um valor nan.

Use a função pandas.isna() para verificar os valores nan em Python

A função isna() no módulo pandas pode detectar valores NULL ou nan. Ele retorna True para todos os valores encontrados. Ele pode verificar esses valores em um DataFrame ou em um objeto Series também. Por exemplo,

import pandas as pd
import numpy as np

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

print(pd.isna(ser))

Resultado:

0    False
1    False
2     True
dtype: bool

Use o obj != obj para verificar os valores nan em Python

Para qualquer objeto, exceto nan, a expressão obj == obj sempre retorna True. Por exemplo,

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

Portanto, poderíamos usar obj != obj para verificar se o valor é nan. É nan se o valor de retorno for True.

import math

b = math.nan


def isNaN(num):
    return num != num


print(isNaN(b))

Resultado:

True

Este método, entretanto, pode falhar com versões anteriores do Python (<= Python 2.5).

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

Artigo relacionado - Python Math