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:
- Carga referencias — Parsea un CSV con columnas
Categoriasycodigos, construyendo un diccionario que mapea cada código entero a una o más categorías de negocio. - Procesa transacciones — Lee archivos de transacciones y consulta el código de actividad de cada fila contra el mapa de referencia.
- Coincidencia difusa — Usa
difflib.SequenceMatcherpara coincidencias aproximadas cuando fallan las búsquedas exactas por código. - Multiprocesamiento — Distribuye el trabajo entre núcleos de CPU mediante
multiprocessing.Poolpara mayor rendimiento en datasets grandes. - 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 multiprocesamientoverboseOG.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
| Capa | Elección |
|---|---|
| Lenguaje | Python 3 |
| Datos | Pandas |
| Coincidencia | difflib.SequenceMatcher, regex |
| Rendimiento | multiprocessing.Pool, cpu_count() |
| E/S | Lectura/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).


Construyendo Smartclic Demo