NaN (NaN), que significa "Not a Number" (no es un número), es un valor especial de coma flotante en Python (y muchos otros lenguajes de programación), que se utiliza 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 debes conocer NaN en Python debe saber:
Representación NaN en Python
En Python puede NaN a través de float('nan') o np.nan de la biblioteca numpy. math.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') False atrás. Para comprobar si un valor NaN puede utilizar la función math.isnan() o numpy.isnan() si trabajas con matrices numpy.
Tratamiento de valores NaN durante el procesamiento de 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 None 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.
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.
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(type(n1))
Además nan desde Python 3.5 parte de la base de datos math-módulo:
import 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 read_csv para leer los datos:
import pandas as pd
df = pd.read_csv("data1/temperatures.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:
average_temp_series = df.mean(axis=1)
df = df.assign(temperature=average_temp_series)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.
Descubre nuestra Categoría Python con artículos útiles en torno al tema.
