Script de ejemplo
Descargar .pyCodigo base para leer ventas y clientes, validar columnas, resumir por segmento y exportar el reporte.
Problema
El reporte se arma todos los meses con copiar, pegar y formulas. Cambia poco, pero consume tiempo y deja espacio para errores.
Estructura esperada
| Archivo | Columnas clave |
|---|---|
| ventas_mes.csv | fecha, cliente_id, importe, estado |
| clientes.csv | cliente_id, segmento |
Codigo base
from pathlib import Path
import pandas as pd
BASE = Path("datos")
SALIDA = Path("salidas")
SALIDA.mkdir(exist_ok=True)
ventas = pd.read_csv(BASE / "ventas_mes.csv", parse_dates=["fecha"])
clientes = pd.read_csv(BASE / "clientes.csv")
requeridas = {"fecha", "cliente_id", "importe", "estado"}
faltantes = requeridas - set(ventas.columns)
if faltantes:
raise ValueError(f"Columnas faltantes: {sorted(faltantes)}")
ventas_validas = ventas[ventas["estado"].eq("confirmada")].copy()
reporte = (
ventas_validas
.merge(clientes, on="cliente_id", how="left")
.groupby("segmento", dropna=False, as_index=False)
.agg(ventas=("importe", "sum"), operaciones=("importe", "count"))
.sort_values("ventas", ascending=False)
)
reporte.to_excel(SALIDA / "reporte_mensual.xlsx", index=False)Enfoque
- Leer fuentes con rutas parametrizadas.
- Validar columnas esperadas y tipos de datos.
- Calcular metricas en funciones pequenas.
- Exportar Excel/CSV y guardar log del proceso.
Validaciones
El script debe fallar temprano si faltan columnas o si los totales no coinciden. Automatizar tambien significa saber cuando detenerse.