NaN Python - Cómo tratar valores NaN en Python

NaNque significa "Not a Number", es un valor especial de coma flotante en Python (y en muchos otros lenguajes de programación) utilizado para representar valores indefinidos o no representables, como el resultado de 0/0 o la raíz cuadrada de un número negativo.

Estos son algunos puntos importantes que debe conocer NaN en Python debe saber:

Representación en Python

En Python puede NaN a través de float('nan') o np.nan de la biblioteca numpy. matemáticas.nan también está disponible en la biblioteca de matemáticas.

NaN es igual a nada

Esto se incluye a sí mismo. Por lo tanto hay float('nan') == float('nan') Falso atrás. Para comprobar si un valor NaN puede utilizar la función math.isnan() o numpy.isnan() si trabajas con matrices numpy.

Tratar con NaN-valores durante el tratamiento de los datos

Al procesar datos, especialmente con Pandas DataFrames o Numpy arrays, a menudo hay que trabajar con NaN-valores. Representan datos que faltan o están dañados. Hay varias formas de tratarlos: puede eliminar las filas o columnas con NaN-Eliminar valores o NaN con un valor específico, como la media o la mediana de los datos, utilizando el método fillna() en los pandas.

NaN en operaciones matemáticas

Cualquier operación matemática con NaN Resultados en NaN. Por ejemplo, hay 5 + float('nan') float('nan') atrás.

NaN y Ninguno son diferentes

NaN es un valor numérico utilizado específicamente en contextos matemáticos y numéricos, mientras que Ninguno más comúnmente utilizado en Python para representar la ausencia de un valor.

He aquí un ejemplo NaN utilizado en Python:

Haz clic en el botón de abajo para cargar el contenido de trinket.io.

Cargar contenido

La comprensión y el manejo correcto de NaN-La capacidad de calcular los valores es muy importante en el análisis de datos y otras tareas de cálculo científico.


Excursión - Tratamiento de NaN

nan' en Python

Es importante saber que Python, incluso sin usar pandas, conoce los valores NaN. Podemos obtenerlos usando float() Generar:

n1 = float("nan")
n2 = float("Nan")
n3 = float("NaN")
n4 = float("NAN")
print(n1, n2, n3, n4)
print(tipo(n1))

Además nan desde Python 3.5 parte de la base de datos matemáticas-módulo:

importar math
n1 = math.nan
print(n1)
print(math.isnan(n1))

Deben evitarse las comparaciones con valores "NaN" y valores numéricos normales, ya que pueden dar lugar a problemas:

print(n1 == n2)
print(n1 == 0)
print(n1 == 100)
print(n2 < 0)

Uso de NaN en Pandas

En pandas, hay varias formas de tratar con valores NaN. En un escenario hipotético en el que estamos evaluando un fichero de medidas de temperatura que contiene valores NaN aislados, podríamos utilizar la función leer_csv para leer los datos:

importar pandas como pd
df = pd.read_csv("datos1/temperaturas.csv",
                 sep=";",
                 index_col=0,
                 decimal=",")
print(df.head())

En este DataFrame podríamos entonces calcular las temperaturas medias y añadirlas como una nueva columna:

serie_temp_media = df.mean(axis=1)
df = df.assign(temperatura=serie_temp_media)

Si hay valores NaN, podrían falsear el resultado. Por lo tanto, es importante manejarlos con sensatez. Una posibilidad sería utilizar la función dropna() Método para eliminar todas las filas en las que aparecen valores NaN:

df = df.dropna()

Otros métodos para tratar los datos que faltan son, por ejemplo, sustituirlos por un número fijo o rellenarlos con valores anteriores o posteriores (fillna(method='ffill') resp. fillna(method='bfill')). Sin embargo, esto depende en gran medida del contexto y de los datos específicos.

Conclusión

El manejo de NaN-valores es una parte esencial del trabajo con datos numéricos en Python. Estos valores suelen representar datos que faltan o que no están definidos y su correcta gestión es crucial para obtener resultados precisos y significativos.

Otros temas

Ahora que ya tiene una noción básica de NaN-valores en Python, podrías profundizar en los siguientes temas:

  • Manejo de errores en Python: Aprenda a manejar errores y excepciones en su código.
  • Limpieza de datos con Pandas: Conozca los métodos de limpieza y preparación de datos con la potente biblioteca Pandas.
  • Técnicas avanzadas de Numpy: Profundiza en el conocimiento de la librería Numpy y su aplicación a datos numéricos.
"
"
Avatar de Florian Zyprian

Últimos artículos