v0.2.0 — Módulo ENOE (mercado laboral mexicano)
datos-mexico v0.2.0
Released: 2026-05-11
Nuevo módulo ENOE — acceso a 101.5 millones de microdatos y 76 mil
indicadores agregados del mercado laboral mexicano (INEGI ENOE,
2005T1–2025T1, dominio 15 años o más).
Instalación
pip install datos-mexico
# extra opcional para microdatos_to_pandas() y los notebooks
pip install datos-mexico[examples]Nuevas capacidades — client.enoe
19 métodos nuevos en cuatro familias.
Catálogos y metadata (5)
health()— estado del dataset (último periodo, conteos, cobertura).metadata()— información completa de cobertura, tablas, etapas y caveats.indicadores()— los 13 indicadores agregados disponibles.entidades()— las 32 entidades federativas con clave INEGI.etapas()— las 3 etapas metodológicas (clasica,etoe_telefonica,enoe_n).
Indicadores agregados (5)
serie_nacional()— serie temporal nacional 2005T1–2025T1.snapshot_nacional()— los 13 indicadores nacionales en un periodo.serie_entidad()— serie temporal por entidad federativa.snapshot_entidad()— todas las entidades para un indicador en un periodo.ranking()— ranking de entidades por indicador y periodo.
Distribuciones (4)
distribucion_sectorial_snapshot()— composición por sector económico (12 sectores SCIAN).distribucion_sectorial_serie()— evolución temporal de un sector.distribucion_posicion_snapshot()— composición por posición en la ocupación (subordinados, empleadores, cuenta propia, no remunerados).distribucion_posicion_serie()— evolución temporal de una posición.
Microdatos (5)
microdatos_schema()— descripción de columnas por tabla.microdatos_count()— conteo exacto con filtros sin descargar filas.microdatos_page()— una página explícita con paginación.microdatos_iter()— iterador síncrono que pagina internamente.microdatos_to_pandas()— helper DataFrame (requierepandas).
Tablas disponibles: viv (vivienda), hog (hogar), sdem
(sociodemográfico), coe1 y coe2 (cuestionario de ocupación y empleo).
Modelos Pydantic (28 nuevos)
Tipos fuertes con caveats metodológicos integrados:
EnoeHealth,EnoeMetadata,EnoeTablaInfoCaveatMetodologico(slug, titulo, descripcion, periodo_aplicable, referencia)IndicadorRef,IndicadoresResponseEntidadRef,EntidadesResponseEtapaRef,EtapasResponseCoberturaTemporal,PuntoSerieSerieNacionalResponse,SerieEntidadResponseIndicadorSnapshotItem,SnapshotNacionalResponse,EntidadSnapshotRow,SnapshotEntidadResponseRankingEntidadRow,RankingResponseDistribucionSectorialRow,DistribucionSectorialSnapshot,DistribucionSectorialSerieDistribucionPosicionRow,DistribucionPosicionSnapshot,DistribucionPosicionSerieMicrodatoColumna,MicrodatosSchema,MicrodatosCountMicrodatosPagination,MicrodatosListResponse
Validación académica — reproducir el boletín INEGI 265/25
from datos_mexico import DatosMexico
with DatosMexico() as client:
r = client.enoe.ranking(
periodo="2025T1",
indicador="tasa_desocupacion",
limit=5,
)
for e in r.ranking:
print(f"{e.rank}. {e.entidad_nombre}: {e.valor:.2f}%")Salida — TOP 5 entidades por tasa de desocupación, 1T 2025:
| Rank | Clave INEGI | Entidad | Tasa |
|---|---|---|---|
| 1 | 27 | Tabasco | 4.97% |
| 2 | 05 | Coahuila de Zaragoza | 3.56% |
| 3 | 10 | Durango | 3.46% |
| 4 | 09 | Ciudad de México | 3.45% |
| 5 | 28 | Tamaulipas | 3.37% |
Cifras idénticas al boletín INEGI 265/25.
Caveats metodológicos integrados
El módulo inyecta automáticamente caveats tipados (CaveatMetodologico)
en cada response que toque una zona delicada:
- TIL1 definición operativa — series de informalidad laboral.
redefinicion_tcco_2020T1— la TCCO cambió su construcción en
2020T1; comparaciones cross-etapa requieren cautela.cambio_marco_2020T3— transición al marco muestral del CPV 2020;
subestimación de 6-7 % en el periodo 2020T3–2021T4.dominio_15_plus— el observatorio reconstruyó la etapa clásica
sobre el dominio uniforme 15+ (INEGI publicaba 14+ pre-2014T4).gap_documental_2020T2— trimestre sin microdatos por la
suspensión COVID; sustituido por ETOE telefónica.
Cada response relevante expone caveats: list[CaveatMetodologico].
Documentación
- Tutorial ENOE: https://docs.datosmexico.org/tutoriales/enoe/
- Reference API: https://docs.datosmexico.org/reference/enoe/
- FAQs ENOE: https://docs.datosmexico.org/faq/
- Notebook ejemplo:
examples/06_enoe_mercado_laboral.ipynb - Fuentes primarias: https://docs.datosmexico.org/sources/
Tests
33 tests passing (31 mock con respx + 2 integration tests que
reproducen el ranking INEGI 265/25 contra el API en vivo, gated por
DATOS_MEXICO_INTEGRATION_TESTS=1).
Smoke test end-to-end después de instalar:
pip install datos-mexico
python -c "
from datos_mexico import DatosMexico
with DatosMexico() as client:
r = client.enoe.ranking(
periodo='2025T1',
indicador='tasa_desocupacion',
limit=5,
)
claves = [e.entidad_clave for e in r.ranking]
assert claves == ['27', '05', '10', '09', '28'], claves
print('INEGI 265/25 reproducible vía pip install datos-mexico')
"Compatibilidad
- Python: 3.10, 3.11, 3.12, 3.13.
- Sin breaking changes desde v0.1.0; los namespaces existentes
(cdmx,consar,enigh,comparativo, …) no cambian de API. pandascomo extra opcional — solo lo necesita el helper
microdatos_to_pandas. Disponible en el extraexamples
(pip install datos-mexico[examples]).- Convención
entidad_clave— el módulo ENOE adopta el contrato
entidad_clavecanónico del observatorio (Sub-fase 3.10c del backend):
el SDK siempre envíaentidad_clave, nunca el alias deprecated
entidad.
Backend
- API REST pública: https://api.datos-itam.org (Cloudflare CDN).
- 17 endpoints ENOE en producción.
- Latencia warm: ~150–200 ms cache HIT, <2 s cold cross-region.
Cobertura del SDK
| Namespace | Endpoints | Estado |
|---|---|---|
cdmx, consar, enigh, comparativo, … (v0.1.0) |
78 | ✅ |
enoe (v0.2.0) |
17 | ✅ |
| Total cubierto | 95 / 114 | 100 % de las lecturas públicas |
Equipo
- David Fernando Ávila Díaz (ITAM, founder).
- Asesoría académica: Dr. Marco Augusto Vásquez Beltrán.
- Equipo de Datos México.
Próximos pasos
- Frontend
/enoeen datosmexico.org (Fase 4). - DOI Zenodo para citación académica.
- Submission al Premio Amafore-ITAM 2026.
PyPI: https://pypi.org/project/datos-mexico/0.2.0/
Docs: https://docs.datosmexico.org/
Issues: https://github.com/Datos-Mexico/datos-mexico-py/issues