> lección 29/34 · 16 min

Valores nulos

Concepto

Un valor nulo es un dato que falta: una lectura que el sensor no envió o una celda que nadie llenó. pandas lo muestra como NaN. Antes de calcular, hay que saber cuántos hay y decidir qué hacer con ellos, porque esa decisión cambia los resultados.

Sintaxis
df["columna"].isna().sum()

Encontrarlos. isna() da True donde falta el dato. Sumado, cuenta los faltantes. Sobre la tabla completa, clientes.isna().sum() cuenta los de cada columna.

clientes["email"].isna().sum()

Lo que hace pandas solo. sum(), mean() y casi todos los resúmenes ignoran los NaN. Es cómodo, pero puede engañar: un promedio calculado con la mitad de los datos se ve igual que uno calculado con todos.

Opción 1: quitar las filas. dropna() elimina las filas con algún dato faltante; con subset miras solo las columnas que importan. Es razonable cuando son pocas filas y no siguen un patrón.

clientes.dropna(subset=["email"])

Opción 2: rellenar. fillna(valor) pone un valor fijo donde falta, por ejemplo 0 en una columna de descuentos, donde vacío significa "sin descuento". En mediciones que cambian de a poco, como una temperatura, ffill() repite la última lectura conocida.

ventas["descuento"] = ventas["descuento"].fillna(0)
stock_diario["unidades"].ffill()

Ojo con ffill cuando la tabla mezcla grupos: si la primera lectura de un sensor faltara, se rellenaría con la última del sensor anterior. Rellenar es inventar un dato; cuando lo hagas, déjalo escrito en tu análisis.

> tarea Python

La tabla sensor ya está cargada, con lecturas de temperatura de dos sensores. Guarda en nulos cuántas temperaturas faltan. Guarda en sin_nulos la tabla sin las filas que no tienen temperatura. Después crea en sensor la columna temperatura_rellena, con cada temperatura faltante reemplazada por la última lectura conocida.

Cargando Python… la primera vez puede tardar unos segundos.

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.