Faragiri

Aprender análisis de datosinteligencia artificial

Cuatro grafías de un bar pusieron al cliente equivocado en cabeza durante dos semanas. Qué quita de verdad una limpieza, y qué no puede devolver nunca.

8Secciones
7Min de lectura
2Profundidad

Una exportación, tres años

Lo que soltó el programa, y lo que se podía contar

Doscientas cuarenta y tres líneas retiradas, cada una por un motivo que cabe en un renglón y se repite el trimestre que viene.

  1. Exportado del programaFecha, cliente, litros y precio2.310
  2. Repartos de verdad112 líneas de prueba de la migración, todas un martes2.198
  3. Con litros anotados57 en blanco, y en blanco no es cero2.141
  4. Con una fecha que significa una cosa74 que se leen de dos maneras, sin nada que deshaga el empate2.067

Cada banda es una decisión que alguien tomó y puede defender. Un embudo sin motivos escritos al lado de las caídas es una disculpa por haber perdido filas.

El mayor cliente de una distribuidora de bebidas de Badajoz resultó ser otro, y el error entero era una manera de escribir un nombre. Rubén Casares Mohedano llevaba dos semanas negociando el rappel del año siguiente con el segundo cuando alguien contó bien.

La exportación del programa de facturación traía 2.310 líneas: fecha, cliente, litros y precio. El mismo bar aparecía como Hnos. Peñalba, Hermanos Peñalba S.L., PEÑALBA y Peñalba e Hijos, y el programa lo había aceptado encantado, porque nada dentro de un campo de texto dice que dos cadenas son un cliente. Un nombre escrito de cuatro maneras son cuatro clientes hasta que alguien los une.

Lo que hizo la fusión con la respuesta

Tal como salió, La Bodeguilla del Puente encabezaba con 11.750 l y Hnos. Peñalba quedaba segundo con 6.420 l. Suma las otras tres grafías, 3.910 l, 2.480 l y 1.370 l, y Peñalba ha comprado 14.180 l, que lo pone primero por un margen que no había visto nadie. Ningún otro cliente de la tabla se movió ni un litro: Mesón Guadiana siguió con sus 5.240 l antes y después.

La comprobación que lo habría cazado es una línea y tarda cuatro segundos. Cuenta los valores distintos de una columna antes de fiarte de ningún total: una columna de clientes con 41 nombres distintos en una distribuidora que reparte a 36 bares es un hallazgo, y es un hallazgo que se tiene antes del análisis en vez de después de dos semanas de análisis.

Lo que llegó, y lo que se podía contar

De las 2.310 líneas exportadas, 112 eran repartos de prueba de la migración al programa actual, todas fechadas el mismo martes. Quedaban 2.198.

Otras 57 no traían litros: en blanco no es cero, y un reparto sin volumen anotado es una línea de la que no se sabe nada, así que tratarla como un reparto de cero litros hunde todas las medias. Quedaban 2.141.

Luego las fechas. 74 líneas venían de una exportación vieja de un sistema configurado a la americana, donde 03/04 es el cuatro de marzo y aquí es el tres de abril. Una fecha ambigua mueve un trimestre entero de filas y no lo dice, y a diferencia de un número malo nunca tiene mala pinta. Esas 74 no tenían con qué deshacer el empate y se cayeron, y quedaron 2.067 líneas que significan una sola cosa cada una.

Doscientas cuarenta y tres líneas fuera de 2.310, y ninguna de las retiradas es discutible una vez escrita, que es el producto de verdad de una sesión de limpieza. Escribe lo que cambiaste, o la respuesta no se puede repetir: la misma exportación pasada por las mismas ocho decisiones da las mismas 2.067 líneas el trimestre que viene, y pasada por el recuerdo que alguien tenga de ellas no las da. Ese es el argumento entero de la limpieza de datos.

La coma que parte una columna en dos

Hay un accidente que en este idioma llega antes que todos los demás y no aparece en ningún manual escrito en inglés. Aquí la coma separa decimales y el punto separa millares, así que 96,00 son noventa y seis litros.

Un fichero separado por comas parte esa cifra por la mitad y deja «96» en una columna y «00» en la siguiente, con todo lo que venga detrás corrido un sitio a la derecha. Por eso el Excel de aquí escribe sus CSV con punto y coma: en español el punto y coma separa columnas porque la coma ya separa decimales.

El estropicio no da error. Da una tabla que carga, con columnas que parecen razonables y totales que suman, y con la mitad de las líneas desplazadas. En la exportación de Rubén el que sobrevivió fue peor de detectar: una línea entrada como 9.600 l donde el albarán dice 96,00 l, una coma que se cayó un viernes.

El orden

Ninguno importa más que otro, y la respuesta vale lo que valga aquel que se saltó.

El eslabón abierto no es el más difícil. Es aquel cuyos fallos no se anuncian, que es otra propiedad y es peor.

Una fila puede mover una media y no una mediana

El reparto medio sobre las líneas limpias salía a 78 litros, que no le sonaba a nadie de la casa. Esa línea era la razón. Quítala y la media baja a 73 litros.

La mediana era 61 las dos veces. Una mediana sobrevive a una fila absurda y una media no, que es por lo que merece la pena imprimir las dos al lado en cualquier tabla que no haya limpiado nadie todavía: donde discrepan mucho, la discrepancia es un dedo señalando las filas a las que hay que ir a mirar. Leer una tabla así es el análisis exploratorio, y casi todo él es igual de poco lucido.

El eje forma parte de la afirmación

La gráfica que fue a la reunión de comerciales enseñaba los litros por mes con el eje vertical empezando en 40.000. La subida del año fue de una décima parte, y en ese eje parecía que la distribuidora había doblado el negocio.

Nadie lo hizo a propósito: el eje lo eligió la librería de dibujo, como hacen las librerías de dibujo, para llenar el hueco. Un eje cortado es una afirmación, y casi nunca la que se quería hacer, así que la regla es decidir tú la base y decir cuál es. La visualización de datos es el último eslabón y el único donde un análisis honrado todavía puede engañar.

Antes y después de una fusión

Se movió una fila, y bastó para cambiar la respuesta

Unir cuatro grafías de un mismo bar cambió el total de un cliente y dejó a todos los demás exactamente donde estaban.

tal como saliódespués de unir las grafías

  1. Hnos. Peñalba6.420 l14.180 lCuatro grafías, un bar, tres años
  2. La Bodeguilla del Puente11.750 l11.750 lEscrito igual siempre. No se movió nada
  3. Mesón Guadiana5.240 l5.240 lAquí tampoco se movió nada, que es para lo que se dibuja

Las dos filas que no se movieron trabajan aquí tanto como la que sí. Un antes y después con solo la fila que cambió es un anuncio del cambio.

Cuatro eslabones, y el que se dibuja cerrado

El orden es la cadena. Primero la obtención de datos, porque la forma de lo que se puede preguntar la decidió alguien cuando eligió qué anotar. Después la limpieza, después el análisis, después la gráfica, y las herramientas de análisis al lado de los cuatro en vez de por delante.

Tomado al revés, que es como se enseña casi siempre, se aprende a dibujar y a calcular sobre juegos de datos de clase y se ve una exportación de verdad por primera vez ya cobrando. A todos los juegos de clase les quitó alguien sus doscientas cuarenta y tres líneas, y esa retirada era la lección. Es también el tema de inteligencia artificial con el que más gente trabaja sin llamarlo así.

El atasco es una tabla limpia que nadie interrogó

Aquí la gente se para en el punto en que el fichero carga sin errores. No protesta nada, cada columna tiene un tipo sensato, los totales cuadran y la tabla ya se parece a las de clase. No parece que uno se haya parado, porque el trabajo se ha vuelto de verdad más difícil de hacer y los errores de verdad han desaparecido.

Lo que falta es la costumbre de preguntarle a la tabla qué no puede saber. Las 2.067 líneas de Rubén no pueden decirle nada de un bar que dejó de comprarle antes del programa actual, no distinguen un reparto rechazado en la puerta de uno que no llegó a salir, y no dicen una palabra sobre el precio por litro, porque la columna de precio es lo facturado y la de litros es lo que se firmó en el albarán aquel día. Cada una de esas es una frase sobre la recogida y no sobre los datos, y ninguna se ve dentro del fichero.

Qué abrir en 2026, y qué sustituyó cada cosa

DuckDB ejecuta SQL directamente sobre ficheros CSV y Parquet en un portátil, sin servidor que instalar, libre y gratuito en 2026, y sustituyó a cargar un fichero en una base de datos antes de poder preguntarle nada. La cuenta de valores distintos de arriba es una consulta contra el fichero exportado, antes de haberlo importado a ninguna parte, y lleva una opción para decirle que el separador es el punto y coma.

OpenRefine está hecho exactamente para el problema de Peñalba, libre y gratuito en 2026: agrupa los valores que casi son el mismo y ofrece la fusión, y sustituyó a ordenar una columna a mano y mirarla de reojo. Aquí se gana el sueldo dos veces, porque agrupa también lo que solo se diferencia en una tilde o en la eñe, que en un fichero español es la mitad de los duplicados. Guarda además la lista de operaciones aplicadas, que es el asunto de la repetibilidad convertido en un fichero en vez de en un propósito.

pandas sigue siendo lo normal para el análisis, libre y gratuito en 2026, y sustituyó a una hoja de cálculo con una fórmula arrastrada 2.310 filas y una fila en la que alguien dejó de arrastrar.

Queda lo que ninguna limpieza arregla. Todas las decisiones de arriba se tomaron sobre líneas que ya existían, y la pregunta interesante es qué no se anotó nunca: la distribuidora no tiene ni una línea para un pedido que se ofreció y no se aceptó, así que ningún trabajo sobre este fichero dirá jamás qué dejó de vender.

Es una pregunta sobre la recogida y no sobre el análisis, y es la misma que hay debajo del aprendizaje automático, donde una fila ausente es un caso ausente. Y es la razón de que la analítica web se pase la mayor parte del tiempo decidiendo qué registrar en vez de qué calcular.

Al lado de esto

Por encima de esto