banxicolab
Series del Sistema de Información Económica (SIE) de Banco de México en un
DataFrame, con el token fuera del código y las transformaciones habituales
para analizar inflación, tipo de cambio y tasas.
Librería no oficial. No está afiliada ni respaldada por Banco de México.
Primeros pasos
En este orden. Los tres primeros pasos se hacen una sola vez.
1. Instala (en un notebook o en Colab, usa %pip en lugar de pip):
pip install "banxicolab[analisis]"
2. Importa:
import banxicolab as sie
3. Configura tu token. Es gratuito y se genera en https://www.banxico.org.mx/SieAPIRest/service/v1/token. Guárdalo con:
sie.guardar_token()
Pégalo cuando te lo pida (no se muestra en pantalla). La librería lo comprueba con Banxico y lo guarda en un archivo privado; no hay que volver a escribirlo ni ponerlo en el código. En Google Colab conviene usar los Secrets: ver Token.
4. Descarga y analiza:
datos = sie.panel(["inpc", "fix", "tasa_objetivo"], inicio="2015-01-01")
sie.inflacion(datos["inpc"]).tail()
La guía completa, con la solución a los errores más comunes, está en https://anajzp.github.io/banxicolab/.
[analisis] agrega statsmodels y matplotlib; sin ellos todo lo demás
funciona igual. Requiere Python ≥ 3.10 y pandas ≥ 2.2.
Descargar
Hay tres formas de pedir datos; se pueden mezclar en la misma llamada.
import banxicolab as sie
# 1. Por clave del SIE: cualquier serie de Banxico, esté o no en el catálogo
sie.descargar("SF43718")
sie.descargar({"SF43718": "FIX", "SF61745": "Objetivo"}, inicio="2020-01-01")
# 2. Por alias del catálogo: sin memorizar claves
sie.descargar(["inpc", "fix", "tasa_objetivo"], "2000-01-01", "2026-12-31")
# 3. Un tema completo del catálogo
sie.descargar(tema="tasas", inicio="2020-01-01")
descargar devuelve un DataFrame con DatetimeIndex y valores float. Se
encarga de lo que suele fallar en silencio: fechas dd/mm/aaaa, N/E, comas
de miles, más de 20 series por consulta, reintentos y límite de consultas.
Panel mensual en un paso
Las series del SIE vienen en frecuencias distintas. panel las descarga y las
lleva a frecuencia mensual, cada una con la regla que indica el catálogo
(último dato para precios y saldos, promedio para tasas):
sie.panel(["inpc", "igae", "fix", "tasa_objetivo", "cetes_28"], "2000-01-01")
sie.panel(tema="tasas", inicio="2015-01-01")
sie.panel({"SF43718": "FIX"}, como={"FIX": "promedio"}) # cambiar la regla
Encontrar una serie
sie.catalogo() # todos los alias
sie.catalogo("precios") # los de un tema
sie.catalogo(buscar="cetes") # por texto, en el catálogo de la librería
sie.buscar("remesas") # en todo el SIE de Banxico (sin token)
sie.metadatos(["inpc", "fix"]) # periodicidad, unidad, cobertura
sie.oportuno(["fix", "tasa_objetivo"]) # último dato publicado
Catálogo
Las 35 series con alias. La columna A mensual es la regla que usa panel.
Cualquier otra clave del SIE funciona directamente con descargar.
Precios
tema="precios"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
inpc |
SP1 |
INPC, índice general | Mensual | Índice | ultimo |
inpc_subyacente |
SP74625 |
INPC subyacente | Mensual | Índice | ultimo |
inpc_no_subyacente |
SP74630 |
INPC no subyacente | Mensual | Índice | ultimo |
inflacion_mensual |
SP30577 |
INPC, variación mensual | Mensual | % | ultimo |
inflacion_anual |
SP30578 |
INPC, variación anual | Mensual | % | ultimo |
inflacion_acumulada |
SP30579 |
INPC, variación acumulada en el año | Mensual | % | ultimo |
inflacion_subyacente_anual |
SP74662 |
Inflación subyacente anual | Mensual | % | ultimo |
inflacion_no_subyacente_anual |
SP74665 |
Inflación no subyacente anual | Mensual | % | ultimo |
inpc_quincenal |
SP8664 |
INPC quincenal, índice general | Quincenal | Índice | promedio |
inpc_subyacente_quincenal |
SP74632 |
INPC subyacente quincenal | Quincenal | Índice | promedio |
inflacion_anual_quincenal |
SP74833 |
INPC quincenal, variación anual | Quincenal | % | ultimo |
media_truncada |
SP74831 |
Indicador de media truncada, general (anual) | Mensual | % | ultimo |
media_truncada_subyacente |
SP74832 |
Indicador de media truncada, subyacente (anual) | Mensual | % | ultimo |
udis |
SP68257 |
Valor de la UDI | Diaria | Pesos por UDI | ultimo |
Expectativas de inflación (encuesta de Banxico, mediana)
tema="expectativas"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
expectativa_inflacion_12m |
SR14195 |
Expectativa de inflación general, próximos 12 meses | Mensual | % | ultimo |
expectativa_inflacion_cierre |
SR14139 |
Expectativa de inflación general, cierre del año en curso | Mensual | % | ultimo |
expectativa_inflacion_cierre_siguiente |
SR14146 |
Expectativa de inflación general, cierre del año siguiente | Mensual | % | ultimo |
Tipo de cambio
tema="tipo_de_cambio"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
fix |
SF43718 |
Tipo de cambio FIX, fecha de determinación | Diaria | MXN/USD | ultimo |
fix_liquidacion |
SF60653 |
Tipo de cambio FIX, fecha de liquidación | Diaria | MXN/USD | ultimo |
fix_promedio_mensual |
SF17908 |
Tipo de cambio FIX, promedio del mes | Mensual | MXN/USD | ultimo |
euro |
SF46410 |
Pesos por euro | Diaria | MXN/EUR | ultimo |
Tasas de interés
tema="tasas"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
tasa_objetivo |
SF61745 |
Tasa objetivo de Banxico | Diaria | % anual | promedio |
tiie_fondeo |
SF331451 |
TIIE de fondeo a un día hábil | Diaria | % anual | promedio |
tiie_28 |
SF43783 |
TIIE a 28 días | Diaria | % anual | promedio |
cetes_28 |
SF60633 |
Cetes a 28 días, subasta semanal | Diaria | % anual | promedio |
cetes_91 |
SF60634 |
Cetes a 91 días, subasta semanal | Diaria | % anual | promedio |
bono_10a |
SF44071 |
Bono M a 10 años, tasa de la subasta | Diaria | % anual | promedio |
udibono_10a |
SF43924 |
Udibono a 10 años, tasa real de la subasta | Diaria | % anual | promedio |
Actividad y salarios
tema="actividad"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
igae |
SR17692 |
IGAE base 2018, serie original | Mensual | Índice | ultimo |
igae_desestacionalizado |
SR17693 |
IGAE base 2018, serie desestacionalizada | Mensual | Índice | ultimo |
salario_minimo |
SL11298 |
Salario mínimo general | Mensual | Pesos por día | ultimo |
Sector externo
tema="externo"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
reservas |
SF43707 |
Reserva internacional | Diaria | Millones de USD | ultimo |
remesas |
SE27803 |
Remesas familiares, total | Mensual | Millones de USD | suma |
Agregados monetarios
tema="dinero"
| Alias | Clave SIE | Serie | Periodicidad | Unidad | A mensual |
|---|---|---|---|---|---|
m1 |
SF311408 |
Agregado monetario M1 | Mensual | Miles de pesos | ultimo |
m2 |
SF311418 |
Agregado monetario M2 | Mensual | Miles de pesos | ultimo |
Analizar
diarias = sie.descargar(["fix", "tasa_objetivo", "cetes_28"], "2000-01-01")
mensual = sie.a_mensual(
diarias, {"fix": "ultimo", "tasa_objetivo": "promedio", "cetes_28": "promedio"}
)
inpc = sie.serie("inpc", "2000-01-01")
sie.inflacion(inpc) # mensual, anual, acumulada, anualizada
sie.a_pesos_de(1000, "2010-01-01", "2026-01-01", inpc) # poder adquisitivo
sie.deflactar(mensual["fix"], inpc, base="2018-07-01") # pesos constantes
sie.tasa_real(mensual["cetes_28"], sie.variacion_anual(inpc)) # Fisher exacta
sie.indice_base(mensual, "2018-01-01") # base 100 para comparar
sie.prueba_adf({"nivel": inpc, "Δln": sie.variacion(inpc, log=True)})
Inflación: mercado y pronósticos
bmx = sie.Banxico()
bmx.inflacion_implicita(10, "2015-01-01") # rendimiento de Bono M y Udibono, e implícita
sie.rendimiento_bono(90.63, cupon=8.0, plazo_dias=3426) # convención mexicana 182/360
sie.impulso(sie.serie("inpc_subyacente"), 3) # 3m/3m anualizado
sie.pronosticar_inflacion(inpc, 12) # SARIMA con intervalo
sie.evaluar_pronosticos(inpc, desde="2012-01-01") # error fuera de muestra vs. método ingenuo
Documentación
La guía completa y la referencia de cada función están en https://anajzp.github.io/banxicolab/.
Para verla en tu computadora mientras la editas:
pip install -e ".[docs]"
mkdocs serve
Ejemplos
examples/inicio_rapido.ipynb: descarga, inflación y tasa real en pocas celdas.examples/seminario_transformaciones.ipynb: el seminario completo de transformaciones, con cada una justificada y verificada con la prueba ADF.examples/inflacion_mercado_y_pronosticos.ipynb: medidas de tendencia, inflación implícita en Bonos M y Udibonos, y pronósticos evaluados fuera de muestra.
Desarrollo
pip install -e ".[dev]"
pytest # pruebas sin red
pytest -m red # verifica el catálogo de alias contra Banxico (sin token)
Autoría
Ana Lorena Jiménez Preciado · Escuela Superior de Economía, Instituto Politécnico Nacional.
Datos
Los datos pertenecen a Banco de México y están sujetos a sus términos de uso.
Metadata
Release files for banxicolab 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| banxicolab-0.3.1.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| banxicolab-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.0 MB
Release files / banxicolab-0.3.1.tar.gz
| Download URL | banxicolab-0.3.1.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4ae8332e2c6242b16f2852c17980b53d5c9d38648cc3fee5bf964150995617f
|
|
BLAKE2b-256 checksum How to use checksums |
c941b557bd809dda50b1a42f64367cddd1086baf4a8caa053dd89d855af863b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / banxicolab-0.3.1-py3-none-any.whl
| Download URL | banxicolab-0.3.1-py3-none-any.whl |
|---|---|
| Size | 38.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b666c4429f9c9a62171981e988f0f940e9ee890ecf2d4e52d4af4d9a63d4efba
|
|
BLAKE2b-256 checksum How to use checksums |
ab9d6b04d55704601879ec4765e1df8a1cabd5ab4a85ccf0837896fac5905825
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log