Datos crudos: limpieza y ETL
CSV rotos, nulos, duplicados, fechas y el pipeline que los deja usables.
13 aulas · 8 horas de práctica · en el navegador, sin instalar nada
Temario
- Leer un CSV a mano y con `csv` — Por qué separar por comas a mano rompe con el primer dato real, y cómo el módulo `csv` resuelve comillas, delimitadores y filas que no cierran.
- Tipos que mienten — Todo lo que sale de un CSV es texto, aunque parezca un número: cómo convertir sin que un `n/d` rompa el programa, y por qué un booleano tiene tres disfraces.
- Fechas en tres formatos, y la que no existe — `strptime` para leer fechas que llegan escritas de tres formas distintas, el 31 de febrero que nunca existió, y por qué ordenar por fecha real no es lo mismo que ordenar por texto.
- Taller — El CSV roto — Un CSV de ventas con comillas, filas cortas y largas, tipos que mienten y fechas en dos formatos: de leerlo a mano a un informe de facturación por día.
- Nulos disfrazados — Un dato faltante casi nunca llega vacío: llega como `"N/A"`, `"-"` o `"sin dato"`. Unificarlos, contarlos, y decidir entre imputar, descartar o marcar.
- Texto sucio: espacios, mayúsculas y acentos — `strip`, espacios dobles, acentos con `unicodedata` y por qué agrupar por texto crudo cuenta la misma ciudad como si fueran diez.
- Duplicados: exactos y casi-duplicados — Un escáner que registra el mismo robot dos veces, otro que lo anota con un espacio de más, y una recorrección que llega tarde: quién se queda cuando hay dos versiones.
- Validar con reglas: un esquema, filas rechazadas con motivo — Un esquema como diccionario de reglas, cada fila que no cumple con su motivo anotado, y el informe de calidad que resume qué está fallando y cuánto.
- Taller — Los clientes duplicados — Clientes con nulos disfrazados, texto sucio y duplicados por DNI: normalizados, deduplicados, validados con reglas, y cruzados contra una lista de pedidos.
- Outliers: un rango fijo contra el IQR — Un valor fuera de rango es fácil de ver; uno fuera de lo típico de *este* dataset necesita el rango intercuartílico. Las dos formas, y por qué no siempre coinciden.
- Unir fuentes: join a mano, claves que no coinciden — Cruzar dos listas por una clave compartida, a mano, con un diccionario. Y por qué un `"1"` de texto nunca es igual a un `1` de número, aunque se vean idénticos.
- El pipeline: funciones puras encadenadas — Las nueve aulas anteriores, encadenadas en cuatro funciones puras con un log por etapa, una salida a JSON, y la prueba de que correrlo dos veces no cambia nada.
- Taller — El pipeline — El pipeline completo: leer un CSV roto, tipar, unificar fechas, deduplicar, marcar outliers, y encadenar todo con un log, idempotencia probada y salida a JSON.