Programa
En el mundo de la ciencia y el análisis de datos, encontrar datos faltantes es más una regla que una excepción. Los valores que faltan pueden sesgar el análisis, llevar a conclusiones incorrectas y, en general, interrumpir el flujo del procesamiento de datos. Abordar estas deficiencias es fundamental para mantener la integridad de tu análisis. El objetivo de este artículo es proporcionarte diferentes formas de identificar valores NaN (Not a Number, no es un número) en Python.
La respuesta corta: Utiliza NumPy's isnan() función o Pandas .isna() método
Cuando se trata de valores perdidos en Python, el enfoque depende en gran medida de la estructura de datos con la que estés trabajando.
Para valores únicos o arreglos: Utiliza NumPy.
La función isnan() de NumPy es ideal para identificar valores NaN en arreglos numéricos o valores únicos, ya que ofrece una solución sencilla y eficaz. ¡Aquí lo tienes en acción!
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: Usa pandas
Pandas proporciona métodos completos como .isna() y .isnull() para detectar valores perdidos en objetos DataFrame o Series, integrándose a la perfección con los flujos de trabajo de análisis de datos.
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
Cuando ejecutes este código, el resultado indicará la presencia de valores NaN en un contexto más interesante, como se muestra arriba.
La diferencia entre NaN y None
Comprender la diferencia entre NaN y None es fundamental en Python. NaN es una representación en coma flotante de «Not a Number» (No es un número), que se utiliza principalmente en cálculos numéricos. Por otro lado, None es un objeto de Python que representa la ausencia de un valor, similar al null de otros lenguajes. Mientras que NaN se utiliza en cálculos matemáticos o científicos, «None» tiene un uso más general y indica la falta de datos.
4 formas de comprobar si hay NaN en Python
Navegar por los conjuntos de datos para identificar valores perdidos es un paso fundamental en el preprocesamiento de datos. Exploremos cuatro métodos prácticos para comprobar los valores e NaN es en Python, continuando con los interesantes ejemplos que ya hemos utilizado.
1. Comprobación de NaN utilizando np.isnan()
Como hemos visto anteriormente, NumPy ofrece un método sencillo para identificar valores e NaN es tanto en valores individuales como en arreglos, lo cual es esencial para el análisis de datos 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. Comprobando si NaN utilizando pd.isna()
Pandas simplifica la detección de valores NaN en estructuras de datos, desde escalares hasta DataFrame complejos, lo que lo hace invaluable para tareas de manipulación de datos.
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. Comprobando si NaN en DataFrame utilizando Pandas .isna() o .isnull() métodos
Los DataFrame de Pandas también ofrecen los métodos .isna() y .isnull() para localizar fácilmente los valores que faltan en los conjuntos de datos, lo que proporciona una visión general clara de la integridad de los datos.
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. Comprobando si NaN en DataFrames utilizando math.isnan()
Para comprobaciones numéricas individuales, la función math.isnan() ofrece una solución sencilla pero eficaz, especialmente cuando se trata de tipos de datos 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
Reflexiones finales y recursos adicionales
Identificar y gestionar los valores NaN es un paso fundamental en la limpieza y preparación de los datos para su análisis. Tanto si trabajas con arreglos, series o marcos de datos, es fundamental comprender las herramientas y métodos disponibles en Python para tratar los datos faltantes. Para obtener más información, consulta los siguientes recursos:

Adel es educador de Ciencia de Datos, conferenciante y Evangelista en DataCamp, donde ha publicado varios cursos y formación en directo sobre análisis de datos, aprendizaje automático e ingeniería de datos. Le apasiona difundir las habilidades y la alfabetización en materia de datos en las organizaciones y en la intersección entre tecnología y sociedad. Tiene un máster en Ciencia de Datos y Análisis Empresarial. En su tiempo libre, puedes encontrarle pasando el rato con su gato Louis.

