En esta página
GeoDataV2 es un Mapeador Multi-Bancos CDMX — un toolkit en Python que extrae, mapea y analiza ubicaciones de sucursales bancarias en Ciudad de México para Santander, BBVA y Banorte. Combina la Google Places API con mapas interactivos Folium y un dashboard Streamlit para sentimiento de reseñas, métricas de competencia e insights geográficos.
Qué hace
El proyecto tiene dos capas principales:
1. Extractor de datos (V1Extractor.py)
La clase MultiBankCDMXMapper impulsa el pipeline:
- Búsqueda multi-banco — Consulta Google Places por ubicaciones de sucursales en las 16 alcaldías de CDMX, con estrategias de búsqueda configurables: por alcaldía, por grid o mixta (alcaldías + códigos postales).
- Deduplicación — Rastrea place IDs procesados para evitar entradas duplicadas en búsquedas superpuestas.
- Datos ricos del lugar — Captura nombre, dirección, teléfono, horarios, calificaciones, conteo de reseñas y reseñas recientes de usuarios por sucursal.
- Análisis de competencia — Calcula distancias entre sucursales competidoras dentro de un radio configurable (1 km por defecto), ventajas de calificación y estadísticas de dominancia por zona.
- Exportación — Guarda resultados como JSON, CSV y Excel multi-hoja (pestañas por banco, dominancia por alcaldía, resúmenes comparativos), además de mapas HTML independientes.
2. Dashboard Streamlit (streamlit_analyzer.py)
Una app web interactiva que carga los datasets exportados y ofrece:
- Overview — Métricas clave y distribuciones por banco
- Análisis de reseñas — Clasificación de sentimiento (TextBlob), nubes de palabras y tendencias de calificación
- Competencia — Saturación de mercado, comparaciones de distancia y ventajas competitivas por zona
- Mapas interactivos — Capas Folium embebidas vía
streamlit-folium, con toggles por banco y heatmaps - Insights avanzados — Correlaciones, pistas predictivas y recomendaciones de expansión
Un script launcher (run_analyzer.py) verifica archivos de datos existentes, opcionalmente ejecuta el extractor primero, instala dependencias e inicia Streamlit.
Stack tecnológico
| Capa | Elección |
|---|---|
| Lenguaje | Python 3 |
| API geodata | Google Maps Places API |
| Mapas | Folium + streamlit-folium |
| Dashboard | Streamlit |
| Visualización | Plotly, Matplotlib, Seaborn |
| NLP | TextBlob (sentimiento), WordCloud |
| Datos | Pandas, NumPy, openpyxl |
| Distancia | Geopy (geodesic) |
Características del mapa
Los mapas HTML generados incluyen:
- Marcadores codificados por color según banco (Santander rojo, BBVA azul, Banorte verde) y por nivel de calificación
- Popups con detalles completos de sucursal, reseñas recientes e info de competidores cercanos
- Capas de heatmap activables por banco
- Círculos de competencia que resaltan zonas de alta densidad
- Múltiples opciones de basemap (OpenStreetMap, modos oscuro/claro)
Proceso de desarrollo
GeoDataV2 combina la API de Google Places, mapas Folium y un dashboard Streamlit para explorar datos de sucursales multi-banco en la Ciudad de México.
Núcleo de extracción (V1Extractor.py)
- Clase
MultiBankCDMXMappercon configuración por banco y búsqueda por alcaldía en las 16 alcaldías. - Estrategia de búsqueda por grid, deduplicación y cálculos de distancia de competencia vía
geodesicde Geopy. - Mapas Folium con clusters de marcadores, heatmaps y popups; exportación JSON, CSV y Excel.
- Datasets de muestra y mapas HTML preconstruidos incluidos en el repo para revisión rápida.
Paginación y rate limiting
- Procesamiento secuencial mejorado para paginación de Places API (
next_page_token). - Pausas entre búsquedas por alcaldía para respetar límites de cuota.
- Acumulación de resultados más confiable al consultar tres bancos en la malla completa de la ciudad.
Dashboard analizador Streamlit
streamlit_analyzer.pycon UI de tema oscuro, colores por banco, gráficas Plotly y mapas Folium embebidos vía streamlit-folium..streamlit/config.tomlpara configuración de deploy hospedado yrun_analyzer.pycomo launcher de un comando.- Filtros del sidebar y descripciones de hojas exportadas documentados en el README.
Timestamps y demo hospedada
- Nombres de exportación estandarizados a
multibancos_cdmx_YYYYMMDD_HHMMpara archivos ordenados y parsing correcto en el loader. - Error de build de Streamlit corregido que bloqueaba bankdata.streamlit.app.
- README ampliado con instalación, API key, ejemplos de estrategias de búsqueda y notas de personalización para nuevos bancos o radio de competencia.
Casos de uso
- Investigación de mercado — Comparar densidad de sucursales y satisfacción del cliente entre bancos y alcaldías
- Planeación de expansión — Identificar zonas desatendidas con baja competencia
- Inteligencia competitiva — Ver qué sucursales superan a rivales cercanos en calificaciones y volumen de reseñas
- Académico / portafolio — Demostrar extracción, análisis y visualización geodata end-to-end


Construyendo Galena AI