ETL de ventas y meteorología

¿Mueve el tiempo las ventas? La respuesta está en el cruce de dos fuentes que nadie diseñó para juntarse.

Datos y BI · Python · Demo navegable

ETL de ventas y meteorología

El problema

El dato que decide algo casi nunca está en una tabla: está en el cruce. Y cruzar bien dos fuentes ajenas —con formatos, ciudades y calendarios propios— es la mitad del trabajo real de ingeniería de datos, la que no se ve en el gráfico final.

Qué hace

  • Extrae dos conjuntos públicos independientes: transacciones de venta minorista y temperatura diaria de grandes ciudades.
  • Los normaliza y los une por ciudad y fecha, que es donde se rompen este tipo de cruces.
  • Arquitectura modular de extracción, transformación y carga, con registro y trazabilidad de cada paso.
  • Deja seis conjuntos preagregados listos para el panel, sin backend que mantener.

Lo que se decidió al construirlo

Se deduplica el parte antes de cruzar
Dos estaciones en la misma ciudad y el mismo día no hacen fallar la unión: duplican cada venta de esa ciudad y la facturación sale al doble sin un solo aviso. El parte se agrega a ciudad y día antes de tocar las ventas, y dos pruebas comprueban que la facturación total no cambia al cruzar.
La clave de unión se normaliza en los dos lados
Ciudad y fecha, con el nombre de la ciudad llevado a la misma forma en las dos tablas. Es exactamente donde se rompen estas uniones: no falla, simplemente deja de cruzar la mitad y el gráfico sale igual de bonito sobre una fracción del negocio.
El centinela del origen se limpia al extraer
El conjunto meteorológico de origen marca el dato ausente con un noventa y nueve negativo, que es una temperatura perfectamente válida para una media aritmética. Se descarta en la extracción, no en el análisis: un valor imposible que llega hasta el gráfico ya ha contaminado todo lo que hay por el camino.
Se trabaja sobre copias
La columna auxiliar de la unión se escribía sobre las tablas de quien llamaba a la función: sobrevivía a la llamada y acababa viajando hasta el fichero final. Ahora cada paso copia lo que recibe, que es lo que permite encadenar transformaciones sin que ninguna ensucie a la siguiente.

Hasta dónde llega

  • Los datos de origen son dos conjuntos públicos de Kaggle y no se versionan aquí. Lo que se publica es el proceso y sus cuarenta y una pruebas; para reproducir los volúmenes hay que descargarlos.
  • El proyecto no mide correlación entre clima y ventas: agrupa la venta media por tramo de temperatura. Comparar esos tramos mezcla temperatura con estación del año, con geografía y con calendario comercial. No se debe leer como causa.
  • La tasa de cruce se registra pero no se exige un mínimo. Las ventas sin parte meteorológico se excluyen del agregado, así que un cruce bajo daría un gráfico igual de convincente sobre menos negocio.
  • El gráfico de dispersión es una muestra de quinientos puntos, no la nube completa.
  • 2 conjuntos públicos cruzados
  • 41 pruebas sobre el cruce
  • 6 conjuntos preagregados

Construido con

  • Python
  • Pandas
  • Firebase

De dónde salen los datos

Dos conjuntos de datos públicos de Kaggle: Superstore Sales y Daily Temperature of Major Cities.

Respalda este servicio

Cuadros de mando con Power BI para pymes

Leer el código · Abrir la demo