¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Del origen al informe: extraer, transformar, cargar

La lección completa está aquí para leer. Crea una cuenta gratuita para ejecutar sus comandos en un laboratorio y hacer sus cuestionarios y tareas.

Lección de 45 minSin comandos

El informe que nadie hace a mano

Una cadena de ferreterías tiene doce tiendas en Galicia. Cada noche, la caja de cada tienda exporta sus ventas en un archivo.

El lunes a las nueve, la dirección abre un informe con las ventas de la semana. Nadie lo ha montado a mano.

Entre las cajas y el informe hay un camino automático. Esta lección lo recorre.

Al final de esta lección

Nota

Puedo describir cómo viajan los datos desde el origen hasta el informe.

Palabras clave

PalabraQué significaEjemplo
Origenel sistema donde nacen los datosla caja de la tienda
Extraersacar los datos del origen
Transformarlimpiar y dar forma a los datos
Cargarguardar los datos donde se van a consultar
Canalización de datoslos pasos que llevan los datos del origen al informe

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Los datos viajan en tres pasos

Extraer: se leen los datos del origen. Aquí, el archivo que deja cada caja.

Transformar: se limpian y se les da la forma que necesita el informe. Se quitan filas vacías y se pasa "35,40" a número.

Cargar: se guardan en una base de datos pensada para consultar. El informe lee de ahí, no de las cajas.

A los tres pasos juntos se les llama ETL, por sus iniciales en inglés.

Los tres pasos en Python

Código: python
# Lo que exporta la caja cada noche: texto separado por punto y coma.
export_text = """tienda;importe
Lugo;35,40
Vigo;12,00
Lugo;
Ourense;48,90"""

# 1. Extraer: pasar el texto a filas.
lines = export_text.split("\n")
rows = []
for line in lines[1:]:
    parts = line.split(";")
    rows.append({"shop": parts[0], "amount": parts[1]})
print("Extraídas:", len(rows))

# 2. Transformar: quitar filas sin importe y pasar el texto a número.
clean = []
for row in rows:
    if row["amount"] != "":
        clean.append({"shop": row["shop"], "amount": float(row["amount"].replace(",", "."))})
print("Transformadas:", clean)

# 3. Cargar: aquí la "base de datos" es una lista; en la empresa sería una tabla.
sales_table = []
for row in clean:
    sales_table.append(row)
print("Cargadas:", len(sales_table))

Qué le pasa a cada fila

Fila del archivoTras extraerTras transformar
Lugo;35,40Lugo y "35,40"Lugo y 35.4
Vigo;12,00Vigo y "12,00"Vigo y 12.0
Lugo;Lugo y ""se queda fuera
Ourense;48,90Ourense y "48,90"Ourense y 48.9

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un error frecuente

Advertencia

Mucha gente cree que lo mejor es que el informe lea directamente de las cajas. No es así. Las cajas sirven para cobrar, y una consulta grande las frena. Además, sus datos llegan sin limpiar. Por eso se copian antes a otro sitio.

Tu turno: totales por tienda

Antes de cargar, la dirección quiere un dato ya calculado: cuánto ha vendido cada tienda. Escribe una función que sume los importes por tienda en un diccionario. Unas pruebas ocultas comprueban tu respuesta.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.