Programa
No mundo da ciência de dados e da análise, encontrar dados ausentes é mais uma regra do que uma exceção. Os valores ausentes podem distorcer a análise, levar a conclusões erradas e, em geral, atrapalhar o fluxo do processamento de dados. Resolver essas lacunas é essencial para manter a integridade da sua análise. Este artigo quer te mostrar diferentes maneiras de identificar valores NaN (Not a Number) em Python.
A resposta curta: Use o NumPy’s isnan() função ou Pandas .isna() método
Quando você tá lidando com valores ausentes no Python, a abordagem depende muito da estrutura de dados com a qual você tá trabalhando.
Para valores únicos ou matrizes: Use o NumPy
A função isnan() do NumPy é perfeita pra identificar NaNs em matrizes numéricas ou valores únicos, oferecendo uma solução direta e eficiente. Aqui está ele em ação!
import numpy as np
# Single value check
my_missing_value = np.nan
print(np.isnan(my_missing_value))
# Output: True
# Array check
my_missing_array = np.array([1, np.nan, 3])
nan_array = np.isnan(my_missing_array)
print(nan_array)
# Output: [False True False]
Para DataFrames: Use Pandas
O Pandas oferece métodos completos, como .isna() e .isnull(), para detectar valores ausentes em objetos DataFrame ou Series, integrando-se perfeitamente aos fluxos de trabalho de análise de dados.
import pandas as pd
import numpy as np
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna())
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
Quando você rodar esse código, o resultado vai mostrar a presença de valores NaN num contexto mais interessante, como mostrado acima.
A diferença entre NaN e None
Entender a diferença entre NaN e None é super importante em Python. NaN é uma representação em ponto flutuante de “Not a Number” (Não é um número), usada principalmente em cálculos numéricos. Já None é um objeto do Python que representa a ausência de um valor, tipo o null em outras linguagens. Enquanto NaN é usado em cálculos matemáticos ou científicos, “None” é mais genérico, indicando a falta de dados.
4 maneiras de verificar se tem NaN no Python
Navegar pelos conjuntos de dados para identificar valores ausentes é uma etapa crítica no pré-processamento de dados. Vamos ver quatro jeitos práticos de checar valores de NaN no Python, continuando com os exemplos legais que já usamos.
1. Verificando se há NaN usando np.isnan()
Como vimos antes, o NumPy oferece uma maneira simples de identificar valores e NaN es tanto em valores únicos quanto em matrizes, o que é essencial para a análise de dados numéricos.
import numpy as np
# Checking a single value
print(np.isnan(np.nan))
# Output: True
# Checking an array
my_array = np.array([1, 5, np.nan])
print(np.isnan(my_array))
# Output: [False False True]
2. Verificando se NaN usando pd.isna()
O Pandas facilita a detecção de valores NaN em estruturas de dados, desde escalares até DataFrame complexos, o que o torna super útil para tarefas de manipulação de dados.
import numpy as np
import pandas as pd
# Checking a single value
print(pd.isna(np.nan))
# Output: True
# Checking a pandas Series
my_series = pd.Series(["Python", np.nan, "The Best"])
print(my_series.isna())
# Output:
# 0 False
# 1 True
# 2 False
# Checking a pandas DataFrame
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(pd.isna(my_dataframe)) # Output a DataFrame with True for missing values
3. Verificando se NaN em DataFrames usando Pandas .isna() ou .isnull() métodos
Os DataFrame do Pandas também têm os métodos .isna() e .isnull() pra achar facilmente os valores que estão faltando nos conjuntos de dados, dando uma visão geral clara da integridade dos dados.
import numpy as np
import pandas as pd
# Create a dataframe with missing values
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
print(my_dataframe.isnull())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
4. Verificando se NaN em DataFrames usando math.isnan()
Para verificações individuais de números, a função math.isnan() oferece uma solução simples, mas eficaz, especialmente quando se trata de tipos de dados Python puros.
import math
# Assuming my_number is a float or can be converted to one
my_number = float('nan')
print(math.isnan(my_number))
# Output: True
Considerações finais e recursos adicionais
Identificar e gerenciar valores NaN é uma etapa fundamental na limpeza e preparação dos seus dados para análise. Se você está trabalhando com matrizes, séries ou estruturas de dados, é essencial entender as ferramentas e métodos disponíveis no Python para lidar com dados ausentes. Para saber mais, dá uma olhada nesses recursos:

Adel é educador de ciência de dados, palestrante e evangelista da DataCamp, onde lançou vários cursos e treinamentos ao vivo sobre análise de dados, aprendizado de máquina e engenharia de dados. Ele é apaixonado pela disseminação das habilidades e da alfabetização de dados nas organizações e pela interseção entre tecnologia e sociedade. Ele tem um mestrado em ciência de dados e análise de negócios. Em seu tempo livre, você pode encontrá-lo passeando com seu gato Louis.
