Parte I · El problema y los datos

2 · Primer contacto con los datos

Antes de limpiar el fichero hay que conocerlo. Un perfilado rápido responde a tres preguntas: qué tipo tiene cada campo, cuántos huecos hay y qué formatos y variantes conviven en una misma columna. Con él aparecen los errores de formato.

El error más caro no aparece en este perfilado: 16 ventas con cantidades fuera de rango, que solo se ven mirando el rango de cada variable dentro de su producto. La primera versión de esta web no lo hizo. Se estudian en la página 8.

Ver el código del perfilado (Python, solo lectura)
# Perfilado sin librerías pesadas: contar vacíos, formatos y variantes
import csv, collections, re
rows = list(csv.DictReader(open(RAW, encoding="utf-8")))
def clasifica_fecha(s):
    if re.match(r"^\d{4}-\d{2}-\d{2}$", s): return "ISO aaaa-mm-dd"
    if re.match(r"^\d{2}/\d{2}/\d{2}$", s): return "MM/DD/AA (US)"
    ...
patrones = collections.Counter(clasifica_fecha(r["fecha_str"]) for r in rows)

Los problemas del fichero en bruto

Fechas en cuatro formatos

Repartidas casi al 25 % cada una, así que una lectura que espere un único formato falla en tres de cada cuatro fechas.

  • dd-mm-aaaa (guion) 5.316
  • ISO aaaa-mm-dd 5.304
  • xx/xx/aa (barra, año con dos cifras) 5.106
  • aaaa/mm/dd 5.101

Duplicados y huecos

  • 827 filas idénticas duplicadas (mismo id_venta).
  • 19,97 % de la satisfacción vacía.
  • 914 correos con espacios dentro.
  • Productos duplicados por tilde: Portátil / Portatil.
Dos lecturas equivocadas que se corrigieron al comprobarlas
A primera vista el fichero parecía tener mojibake (caracteres rotos tipo «Módulo»). Al revisar los bytes del fichero resultó ser UTF-8 correcto. Los caracteres salían rotos en la consola porque esta no mostraba bien la codificación. El dato estaba bien. La segunda suposición fue que la satisfacción iba de 1 a 5 con algún «6» anómalo, cuando en realidad va de 1 a 10. Ninguna de las dos resistió la comprobación. Por eso en este trabajo cada afirmación se comprueba antes de escribirla.

Antes de arreglarlo, conviene saber qué errores puede tener un fichero. Siguiente: la teoría de la calidad de datos →