Construyendo el Activity Code Analyzer

El Activity Code Analyzer (actcod) es un pipeline de datos en Python desarrollado durante la pasantía en Santander para categorizar millones de transacciones bancarias por sus códigos de actividad (COD_ACT). Mapea códigos numéricos crudos a categorías de negocio usando un CSV de referencia, con soporte de multiprocesamiento para procesar archivos grandes de transacciones de forma eficiente.

Qué hace

El pipeline lee datos de transacciones y un archivo de mapeo de referencia (referencias.csv), y luego:

  1. Carga referencias — Parsea un CSV con columnas Categorias y codigos, construyendo un diccionario que mapea cada código entero a una o más categorías de negocio.
  2. Procesa transacciones — Lee archivos de transacciones y consulta el código de actividad de cada fila contra el mapa de referencia.
  3. Coincidencia difusa — Usa difflib.SequenceMatcher para coincidencias aproximadas cuando fallan las búsquedas exactas por código.
  4. Multiprocesamiento — Distribuye el trabajo entre núcleos de CPU mediante multiprocessing.Pool para mayor rendimiento en datasets grandes.
  5. Exporta resultados — Escribe la salida categorizada con marcas de tiempo y registro de progreso.

El repositorio incluye dos versiones del script:

  • Verbose.py — Pipeline completo con logging detallado, estadísticas y multiprocesamiento
  • verboseOG.py — Prototipo anterior monohilo para validación

Contexto

Este proyecto surgió del trabajo exploratorio CodigosActividad archivado en el repositorio de la pasantía en Santander (txtversion), donde se probaron múltiples versiones de algoritmos (simple, avanzado, basado en SQL) antes de converger en el enfoque validado con multiprocesamiento de este repositorio.

La categorización de códigos de actividad respalda detección de fraude, segmentación de clientes e informes regulatorios — convirtiendo códigos numéricos opacos en categorías de negocio accionables.

Stack tecnológico

CapaElección
LenguajePython 3
DatosPandas
Coincidenciadifflib.SequenceMatcher, regex
Rendimientomultiprocessing.Pool, cpu_count()
E/SLectura/escritura CSV, exportación JSON

Proceso de desarrollo

PrimerVersion

Commit inicial con el primer script funcional de categorización — carga básica de referencias y procesamiento de transacciones en un solo archivo.

PrimeraVersionNoMutihilo

Lógica refinada sin multiprocesamiento para validar la corrección en muestras pequeñas antes de escalar.

PrimeraVersionmultihilo

Se agregó multiprocesamiento con Pool para paralelizar lotes de transacciones entre los núcleos de CPU disponibles.

VersionMultihilovalidada

Versión final validada con multiprocesamiento (Verbose.py) — probada contra datos de referencia con mapeos de categoría correctos a escala. Este es el script listo para producción en el repositorio.

Actualización del README (rama main)

Documentación del proyecto actualizada en la rama predeterminada main (el código vive en master).

Blog

recent-work

Construyendo Smartclic Demo

Landing page moderna para una agencia mexicana de desarrollo web — React 19, Vite, Tailwind v4, scroll GSAP, visor 3D y bilingüe ES/EN.

Leer más →

Smartclic Demo

Landing page para una agencia web mexicana — React 19, Tailwind v4, GSAP scroll, visor 3D y bilingüe ES/EN.

Cómo se construyó →
border-home1