🇪🇸 Español · 🇬🇧 English
Paneles macroeconómicos entre países
Diez módulos de puremacro.fetch convierten toda la sección cruzada de un proveedor en un solo DataFrame con una sola llamada. Comparten un contrato:
- Forma. Un marco ancho indexado por
(code, date): códigos ISO3 ydateal inicio del periodo (1 de enero, primer día del trimestre o del mes). Una columna por variable, con los nombres que se usan en el resto de puremacro (gdp,cons_hh,inv,urate,cpi, ...). - Metadatos en
attrs.meta(por columna, o por país y variable: flujo, unidades, cobertura),source,fetched_at(UTC) ymissing(lo que se pidió y no se obtuvo, con el motivo). Cada módulo tiene un auxiliar*_meta(panel)que muestrametacomo tabla. - Nunca lanza una excepción por una falla del proveedor. Un HTTP 429, un tiempo de espera agotado, un cuerpo truncado o una API caída producen una advertencia y un marco vacío o parcial; el motivo queda en
attrs["missing"]. - Solo urllib. Ningún módulo importa
requests, así que funcionan donde no está instalado y se importan sin problema en un iPad o bajo Pyodide. - Caché en disco bajo
~/.cache/puremacro(se cambia conPUREMACRO_HTTP_CACHE_DIR), nunca dentro del repositorio. Una nueva ejecución solo reenvía lo que falló. Paserefresh=Truepara obtener la publicación más reciente. - Ritmo de la OCDE. Toda solicitud a la OCDE pasa por
puremacro.fetch._oecd_sdmx.oecd_csv, que espacia las llamadas (5 s por omisión), reintenta ante HTTP 429 y guarda en caché la respuestacsvfile.
Las cifras de cobertura de esta página se midieron en vivo el 7 de octubre de 2026.
WDI del Banco Mundial: wdi_panel (puremacro.fetch.wdi)
wdi_panel(indicators=None, codes=None, *, start=1960, end=None, real=True, long=False, refresh=False, pause=1.0, timeout=120.0) es el panel anual gratuito más amplio y más largo: los Indicadores del Desarrollo Mundial para las 217 economías que lista el Banco Mundial (territorios incluidos), desde 1960.
- Unidades. Niveles monetarios en millones de moneda local corriente, personas en miles, tasas e índices tal como se publican.
- Términos reales y deflactores.
real=Trueagrega<name>_real(moneda local constante al año base propio de cada país, véasewdi_meta) y<name>_defl = 100 * nominal / real, que se conserva solo donde ambos niveles son positivos (las celdas enmascaradas se cuentan enn_masked). Las partidas que cambian de signo (inventories,stat_disc,taxes_prod) no reciben deflactor. El deflactor del PIB reproduce el del propio WDI con una diferencia de 1e-15. Los componentes_realencadenados no suman. - Indicadores.
NonedescargaWDI_CORE(cuentas nacionales, población, el bloque laboral de la OIT, PPA, tipo de cambio, IPC y crédito privado: 35 nombres, 51 solicitudes, unos 2,5 minutos sin caché)."all"descarga todo el registroWDI_INDICATORS(52 nombres). Un diccionario{"name": "WDI.CODE"}agrega cualquier código crudo, sin reescalar. - attrs.
metatiene un diccionario por columna (indicator, units, unit_mult, first, last, n, n_codes,lastupdated). Los cuerpos de error que llegan con HTTP 200 se vuelven a pedir una vez, para que una respuesta defectuosa no se sirva desde la caché de 30 días. - Auxiliares.
wdi_countries()(región, grupo de ingreso) ywdi_meta()(moneda, año base, versión del SCN, notas sobre años fiscales). - Lo que no está en WDI. Bienes durables, FBCF pública (solo
inv_priv), acervos de capital, horas, un nivel de empleo (uself * (1 - urate/100)), remuneraciones de toda la economía y nada subanual.
Fuente: WDI del Banco Mundial, API v2, fuente 2 (CC BY 4.0).
Cuentas nacionales anuales de la OCDE: ana_panel (puremacro.fetch.oecd_ana_panel)
ana_panel(codes=None, *, start="1950", assets=False, durability=False, income=False, output=False, labor=False, sectors=False, stocks=False, real=True, long=False, refresh=False) es el gemelo anual de qna_panel.
from puremacro.fetch import ana_panel, ana_countries, ana_panel_meta
p = ana_panel(["USA", "FRA", "MEX"], start="1950", income=True, labor=True)
p.loc["FRA", ["gdp", "gdp_defl", "gdp_real", "mixed_income", "hours"]]
- Dinero en millones de moneda nacional a precios corrientes.
<x>_defles100 * V / LR(2020 = 100), exactamente el deflactor que publica la OCDE.<x>_reales el volumen encadenado a precios de 2020:LRdonde se publica; si no,Lrebasado conV/Lde 2020. No es aditivo fuera de 2020.- Una tabla por serie. Cada (país, variable, base de precios) se lee completa de T0102, si no de T0101, si no de T0103;
meta["tables_not_t0102"]lista las excepciones (hoy solo el volumen del PIB de Rusia).
Con codes=None el panel tiene 64 países: 6 empiezan antes de 1960, 12 antes de 1970, 34 antes de 1980 y 46 antes de 1995.
| Interruptor | Columnas | Fuente |
|---|---|---|
| (siempre) | gdp, cons_hh, cons_gov, inv, capform, exports, imports, discrepancy_exp | DSD_NAMAIN10 DF_TABLE1 (T0102) |
income |
comp_emp, surplus_mixed, taxes_prod_imp, subsidies, taxes_prod_imp_net, discrepancy_inc, gdp_income; surplus_gross, mixed_income, cfc, vat | DF_TABLE1 (T0103); DSD_NASEC10 DF_TABLE14 |
output |
gdp_output, va_total, va_agri, va_ind, va_mfg (partida informativa), va_constr, va_trade, va_ict, va_fin, va_realest, va_prof, va_public, va_other, va_services, taxes_prod, discrepancy_out | DF_TABLE1 (T0101) |
durability |
cons_dur, cons_semidur, cons_nondur, cons_serv (hogares, S14) | DF_TABLE5A_T117, si no DF_TABLE5_T117 |
assets |
inv_dwell, inv_struct, inv_equip, inv_transp, inv_ict, inv_othmach, inv_bio, inv_ipp | DF_TABLE1 (T0102) |
sectors |
inv_gov, inv_corp, inv_fin, inv_hh (S14, si no S1M) | DSD_NASEC10 DF_TABLE14_GFCF |
stocks |
k_net, k_gross (con volúmenes), k_net_gov | DF_TABLE9A; DSD_NASEC10 DF_TABLE9B |
labor |
emp, emp_employees, emp_selfemp, hours, hours_employees, hours_selfemp (cada una también _agri, _public); pop |
DF_TABLE3_EMPDC; DF_TABLE3_POP_EMPNC |
Ingreso, sectores, k_net_gov, trabajo y población son bloques a precios corrientes o de conteo y no reciben deflactor.
attrs: meta (un diccionario por país, que se lee con ana_panel_meta: moneda, años, base de volumen, tabla de durabilidad, sector de inv_hh, escala de horas, columnas ausentes), variables (un diccionario por columna: flujo, unidades, descripción, cobertura, claves SDMX), missing (fallas que una nueva ejecución puede corregir: 429, tiempos agotados, cuerpos que no son SDMX, países sin PIB), chunks_empty (404 o respuestas vacías que una nueva ejecución no cambia) y requests (cada solicitud con su estado y número de filas). Las solicitudes van en bloques de a lo sumo 10 países; el principal, activos, ingreso y producción comparten una sola solicitud a DF_TABLE1.
Fuente: OECD SDMX, agencia OECD.SDD.NAD.
Bloques trimestrales de la OCDE junto a qna_panel (puremacro.fetch.oecd_qna_extras)
Cuatro funciones, cada una una sola llamada, y todas se unen con qna_panel por el índice.
| función | columnas | unidades | cobertura |
|---|---|---|---|
qna_sector_gfcf(codes=None, *, start="1947", sa="x13") |
inv_gov, inv_priv, inv_gov_real, inv_priv_real |
millones de moneda nacional | 34 países, EUA desde 1947T1; volúmenes para 11 |
qna_population(codes=None, *, start="1947") |
pop, emp_nc, emp_employees_nc, emp_selfemp_nc |
miles de personas | pop 43 (EUA desde 1947), empleo 40 (desde 1980) |
oecd_lfs_panel(codes=None, *, freq="Q", start="1950") |
urate, urate_1564, emp_lfs, lf, wap, wap_1564, prate_1564, epop_1564 |
miles / porcentaje | 45 países desde 1955; freq="M" para mensual |
oecd_vacancies(codes=None, *, freq="Q", start="1950") |
vacancies, vacancies_new, reg_unemp |
miles de personas | 18 con vacantes (DEU desde 1955), 29 con desempleo registrado |
- Fuentes. La inversión pública viene de
DF_QNA_EXPENDITURE_GFCF_SECTOR(S13, S1W) donde se publica; si no, de las cuentas sectoriales trimestralesDF_QSA(privada = S1 menos S13);attrs["meta"]["source"]indica cuál.uratees la tasa armonizada (UNE_LF_M), o la tasa de la encuesta (UNE_LF) para BRA, RUS, ZAF y algunos otros. Las vacantes son solo niveles (TRANSFORMATION=_Z). - Ajuste estacional. Se toman las series ajustadas de la OCDE donde se publican.
qna_sector_gfcf(sa="x13")ajusta el resto con la ruta X-13 deqna_panel(sa="prefer"las deja sin ajustar); los demás bloques recurren a la serie sin ajustar.attrs["meta"]["sa"]registraoecd,puremacro,noneomixedpor país y variable. - Fallas.
attrs["missing"]lista cada par (país, variable) no obtenido, con"not published"o, por ejemplo,"HTTP 429 on <flow>";attrs["requests"]registra cada solicitud, incluida la de disponibilidad.qna_extras_meta(panel)tabulameta. Todas las llamadas aceptanrefresh=True.
from puremacro.fetch import qna_panel, qna_countries
from puremacro.fetch.oecd_qna_extras import (qna_sector_gfcf, qna_population,
oecd_lfs_panel, oecd_vacancies)
codes = qna_countries()
quarterly = qna_panel(codes).join([qna_sector_gfcf(codes), qna_population(codes),
oecd_lfs_panel(codes), oecd_vacancies(codes)], how="outer")
Indicadores mensuales de corto plazo de la OCDE: stes_panel (puremacro.fetch.oecd_stes_panel)
stes_panel(codes=None, *, concepts=None, start="1950", refresh=False, pause=5.0, retries=3, retry_sleep=90.0) devuelve 31 conceptos mensuales en niveles, tal como los publica la OCDE: índices (2015 = 100; las encuestas y el CLI, promedio de largo plazo = 100), porcentajes, moneda local por USD y personas en miles. Los logaritmos, las tasas de crecimiento y el ajuste estacional de las series sin ajustar (IPC, dinero, urate_nsa) quedan a cargo del usuario. El valor por omisión start="1950" recorta la producción industrial de EUA (desde 1919) y el IPC de Canadá (desde 1914); pase start="1900" para la historia completa.
from puremacro.fetch import stes_panel, stes_meta
m = stes_panel(start="1900", pause=8.0) # every economy, all 31 concepts, full history
m = stes_panel(["USA", "MEX"], concepts=["ip", "cpi", "rate_3m", "urate"])
stes_meta(m)[["concept", "unit", "n_countries", "first", "last", "stale_countries"]]
| grupo | conceptos | flujo | cobertura |
|---|---|---|---|
| producción | ip, ip_mfg, ip_constr, retail_vol (desestacionalizados) | STES DF_INDSERV |
ip 41 economías, EUA desde 1919 |
| mercados | rate_on, rate_3m, rate_10y (% anual), share_price, reer_cpi | STES DF_FINMARK |
43-47 |
| tipo de cambio | fx_usd (moneda local/USD; miembros del euro empalmados al EUR) | STES DF_KEI |
46, sin EUA |
| encuestas | bci, cci, cli (ajustado por amplitud) | STES DF_CLI |
46 / 41 / 17 |
| dinero | m1, m3 (índice sin ajustar) | STES DF_MONAGG |
29; ningún miembro individual del euro (pida "EA20") |
| trabajo | urate, urate_nsa; emp, lf, prate, epop | TPS DF_IALFS_UNE_M, DF_IALFS_INDIC |
39; unos 10 para niveles mensuales de la encuesta |
| registros | vacancies, reg_unemp (miles, desestacionalizados) | TPS DF_OIALAB_INDIC |
17 / 27 |
| precios | cpi, cpi_food, cpi_energy, cpi_core; hicp, hicp_food, hicp_energy, hicp_core (sin ajustar) | TPS COICOP 2018, luego COICOP 1999 | 46/45/39/40; 30 cada uno |
- Precios al consumidor. Los países de la UE/EEE pasaron a COICOP 2018 en enero de 2026 y sus series COICOP 1999 terminan en 2025-12. Cada columna de precios toma primero COICOP 2018 y completa con COICOP 1999 mes a mes, empalmando por razón los meses anteriores sobre el nivel de 2018. Las brechas solo son grandes donde se redefinió un agregado (energía de BGR 13%, subyacente de NLD 5%, subyacente de BGR 4%). El IAPC toma el flujo 1999 solo para la UE, CHE, GBR, ISL, NOR y TUR.
stes_meta(m)listacountries_fallback,splice_factorsystale_countries(series que terminan más de seis meses antes: IPC nacional de AUT, POL y SVK en 2025-12 y de RUS en 2022-03, subyacente de ZAF en 2024-12, IAPC de ISL). - Fallas. Los conceptos que fallan van a
attrs["missing"]; un país pedido sin datos aparece como"concept:CODE". Si falla la solicitud COICOP 2018 de una columna de precios, la columna se descarta en lugar de construirse solo con 1999; si solo falla la de respaldo, se conserva y se marca ("cpi@DF_PRICES_ALL"). Mientras la OCDE limita el tráfico, una llamada completa puede bloquearse entre 30 y 45 minutos;retries=1falla rápido.
Fuente: API SDMX de la OCDE (sdmx.oecd.org).
Eurostat: eurostat_na_panel y eurostat_monthly_panel (puremacro.fetch.eurostat)
Las cuentas nacionales europeas más largas (Francia y Noruega desde 1975, cuentas sectoriales francesas desde 1949), los informantes de los Balcanes y de la Asociación Oriental, e indicadores mensuales que faltan en los flujos de la OCDE.
eurostat_na_panel(codes=None, *, freq="A", start=None, durability=False, assets=False, output=False, income=False, labor=False, sectors=False, capital=False, real=True, sa="prefer", refresh=False, timeout=120.0)eurostat_monthly_panel(codes=None, *, start=None, variables=None, refresh=False, timeout=120.0)- Piezas básicas:
eurostat_get(flow, key, ...),eurostat_codes(flow),eurostat_meta(panel).
from puremacro.fetch.eurostat import (eurostat_na_panel, eurostat_monthly_panel,
eurostat_meta, eurostat_get, eurostat_codes)
a = eurostat_na_panel() # 41 countries, 1975-2025, gdp ... imports + _real + _defl
q = eurostat_na_panel(freq="Q") # 39 countries, SCA > SA > NSA per country
full = eurostat_na_panel(["DEU", "FRA"], durability=True, assets=True, output=True,
income=True, labor=True, sectors=True, capital=True)
m = eurostat_monthly_panel(variables=["cpi", "cpi_core", "urate"])
eurostat_meta(full) # one row per country and variable
| bandera | columnas | flujo (anual / trimestral) |
|---|---|---|
| (siempre) | gdp cons_hh cons_gov inv capform exports imports | nama_10_gdp / namq_10_gdp |
| income | comp_emp surplus_mixed taxes_prod_imp subsidies taxes_products subsidies_prod taxes_prod; anual: mixed_income surplus_gross cfc | nama_10_gdp + nasa_10_nf_tr / namq_10_gdp |
| durability | cons_dur cons_semidur cons_nondur cons_serv | nama_10_fcs / namq_10_fcs |
| assets | inv_dwell inv_struct inv_constr inv_equip inv_ipp | nama_10_an6 / namq_10_an6 |
| output | va_total va_services va_agri va_ind va_mfg va_constr va_trade va_info va_fin va_realestate va_business va_public va_other | nama_10_a10 / namq_10_a10 |
| labor | emp emp_employees emp_selfemp (miles) hours (millones) pop | nama_10_a10_e + nama_10_pe / gemelos namq_ |
| sectors | inv_corp inv_fin inv_hh inv_gov | nasa_10_nf_tr + gov_10a_main / nasq_10_nf_tr + gov_10q_ggnfa |
| capital (anual) | k_net k_dwell k_struct k_equip k_ipp k_gross | nama_10_nfa_st |
- Unidades. Millones de moneda nacional; para los miembros del euro, euros en toda la historia, de modo que no hay quiebre en la adopción.
_realson volúmenes encadenados con año de referencia 2020 (2015 donde 2020 no se publica, p. ej. el Reino Unido);_deflvale 100 en el año de referencia. - Columnas siempre presentes. El marco trae cada columna pedida, toda NaN si no llegó nada, así que
df["gdp"]nunca lanza una excepción. - Fallas (tiempo agotado, 5xx, conexión cortada, descarga truncada, trabajo asíncrono vencido) producen un marco vacío, una advertencia y el motivo en
missing. Cada solicitud deja abierta la dimensión de país, así que cualquier subconjunto de países reutiliza la misma descarga en caché.
FMI: puremacro.fetch.imf
El FMI sirve sus datos en api.imf.org/external/sdmx/2.1. El antiguo servidor de IFS (dataservices.imf.org) ya no existe y sdmxcentral.imf.org responde 501 a las consultas de datos. Todas las funciones de abajo aceptan además refresh=False.
| función | devuelve | cobertura |
|---|---|---|
imf_nea_panel(codes=None, *, freq="A"\|"Q", sa="SA", real=True, start=None) |
gdp, cons, cons_gov, cons_hh, cons_priv, inv, capform, inventories, exports, imports + _real, _defl |
A: 188 economías, 1950-2026; Q SA: 66 |
imf_monthly_panel(codes=None, *, variables=None, start=None) |
cpi, cpi_food, cpi_housing, cpi_transport, ip, ip_sa, ip_mfg, urate, emp, lf, policy_rate, mm_rate, tbill_rate, bond_yield, discount_rate, deposit_rate, lending_rate, neer, reer, fx_usd, fx_usd_eop |
IPC: 191 economías desde 1914; fx: 222 desde 1940 |
imf_labour_panel(codes=None, *, freq="A"\|"Q"\|"M", start=None) |
urate, emp, lf, unemp |
A: emp 190, lf 189 |
imf_pcps(*, freq="M", start=None) |
pcom_all, pcom_energy, poil, pcopper, ... + <code>_idx / <code>_usd |
188 series desde 1992, código WLD |
imf_weo(codes=None, *, indicators=None, start=None, vintage=None, history_only=False) |
17 series nombradas del WEO + indicador forecast |
197 economías, 1980-2031 |
imf_icsd(codes=None, *, start=None) |
inv_gov, inv_priv, k_gov, k_priv, k_pubpriv, gdp (precios corrientes) + variantes _ppp, _gdp |
194 economías, 1960-2019 |
imf_get(flow, key="all", ...), imf_dataflows(), imf_meta(panel) |
SDMX-CSV crudo; catálogo de flujos; tabla de metadatos |
- Unidades. Niveles en moneda nacional en millones (los miles de millones de ICSD se multiplican por 1000), personas en miles, tasas, índices y precios tal como se publican. Cada fila de
attrs["meta"]daunit_multyscale(el factor aplicado). - Ceros de relleno. Algunos flujos publican ceros exactos donde no hay datos (todo el lado del gasto de Burkina Faso en 1952-1998, los acervos de capital de las economías que ICSD no cubre). Se convierten en faltantes y se cuentan en
attrs["zeros_dropped"]. Los ceros que pueden ser verdaderos (variación de existencias, el acervo de capital PPA, desempleo, tasas de interés) se conservan. - Precios y volúmenes.
_realestá a precios constantes del año de referencia propio de cada país, encadenado en la mayoría, así que los componentes no suman._defl = 100 * nominal / realtiene esa base, que no siempre cae dentro de la muestra (BRA, ECU y AUS nunca se acercan a 100): rebásela antes de comparar niveles entre países.cons_hhcubre solo hogares (67 economías); para hogares más ISFLSH usecons_priv = cons - cons_gov. - Códigos. Los códigos de grupo del FMI (
G001,G163, ...) se eliminan conIMF_AGGREGATES;KOSpasa aXKXyWBGaPSE; las economías históricas (SUN,YUG, ...) se conservan. - WEO. La historia termina por separado para cada país e indicador (
LATEST_ACTUAL_ANNUAL_DATA); la población de Argentina es proyección después de 2010, mientras que su PIB es observado hasta 2025.forecastsigue al PIB real.history_only=Truecorta cada columna en su propia frontera, que es lo que conviene para congelar la historia. Los años fiscales siguen la correspondencia del FMI (el AF 2024/25 de India es 2024; el de Pakistán, 2025). - Presupuesto de tiempo. Cada solicitud se reintenta 3 veces (hasta 180 s cada una).
imf_monthly_panelse detiene tras dos flujos fallidos seguidos, así que una API caída cuesta a lo sumo unos 25 minutos. - Lo que no está en los flujos del FMI. El lado del ingreso, durables, FBCF por activo, horas, IPC subyacente o de energía, plazos del mercado de dinero: use los recolectores de la OCDE, Eurostat o la OIT.
from puremacro.fetch.imf import imf_nea_panel, imf_monthly_panel, imf_weo
a = imf_nea_panel() # 188 economies, annual
q = imf_nea_panel(["USA", "MEX", "KOR"], freq="Q")
m = imf_monthly_panel(start=1990)
hist = imf_weo(history_only=True) # WEO history only, per-column boundaries
BPI: bis_panel (puremacro.fetch.bis)
bis_panel(codes=None, *, variables=None, freq="M", start=None, aggregates=False, refresh=False). Cada variable es una sola solicitud comprimida con gzip que cubre todas las economías. Además: bis_eer(kind="real", basket="broad", *, freq="M", ...), bis_get(flow, key, ...), bis_countries(flow), bis_meta(panel).
from puremacro.fetch.bis import bis_panel, bis_eer, bis_countries, bis_meta
m = bis_panel() # monthly, every economy, full history
q = bis_panel(freq="Q", start="1960")
a = bis_panel(["GBR", "USA"], variables=["cpi_a", "policy_rate"], freq="A")
| variable | flujo / clave BPI | frecuencia nativa | unidades | economías | desde |
|---|---|---|---|---|---|
| neer, reer | WS_EER M.N.B / M.R.B |
M | índice 2020=100 | 63 | 1994-01 |
| neer_narrow, reer_narrow | WS_EER M.N.N / M.R.N |
M | índice 2020=100 | 25 / 26 | 1964-01 |
| policy_rate | WS_CBPOL M |
M | % anual, fin de periodo | 48 | 1945-01 |
| cpi | WS_LONG_CPI M.*.628 |
M | índice 2010=100 | 62 | 1913-01 |
| xr_usd, xr_usd_eop | WS_XRU M.*..A / ..E |
M | moneda nacional por USD | 189 | 1791 / 1900 |
| credit_gdp, credit_bank_gdp, credit_hh_gdp, credit_nfc_gdp, credit_gov_gdp | WS_TC Q.*.{P,P,H,N,G}.{A,B,A,A,A}.{M,M,M,M,N}.770.A |
Q | % del PIB | 43 (gov 42) | 1947T4 |
| credit, credit_usd | WS_TC Q.*.P.A.M.XDC.A / USD |
Q | millones de moneda nacional / USD | 43 | 1940T2 |
| credit_gap, credit_trend | WS_CREDIT_GAP Q.*.P.A.C / .B |
Q | pp del PIB / % del PIB | 43 | 1957T4 |
| house_price, house_price_real | WS_SPP Q.*.N.628 / R.628 |
Q | índice 2010=100 | unas 57 | 1927T1 |
| dsr, dsr_hh, dsr_nfc | WS_DSR Q.*.P / H / N |
Q | % del ingreso | unas 31 / 17 | 1999T1 |
| cpi_a | WS_LONG_CPI A.*.628 |
A | índice 2010=100 | 62 | 1661 |
- Frecuencia. El BPI publica solo las frecuencias nativas de arriba; una
freqmás gruesa se construye aquí. La tasa de política, el tipo de cambio de fin de periodo y los saldos y razones de crédito toman el último subperiodo; los índices, el tipo de cambio promedio, los precios de vivienda y el DSR toman el promedio de un periodo completo. Un trimestre o año en curso incompleto se omite, no se promedia sobre los meses disponibles. - Agregados.
EAy los demás agregados del BPI (EME, ADV, ALL, G20, WLD, WAEMU) se eliminan por omisión, para que los promedios entre países nunca cuenten dos veces a los miembros del euro; uno nombrado encodesse conserva, yaggregates=Truelos conserva todos. Los conteos de economías de arriba excluyenEA. - Tasa de política de la zona euro. Las series nacionales terminan en 1998-12 (Grecia en 2000-12) y
EAempieza en 1999-01; empálmelas usted, p. ej.pd.concat([p.loc["DEU"][:"1998-12"], p.loc["EA"]["1999-01":]]). - Fechas. El nivel de fecha es
datetime64[ns], salvo en paneles concpi_aanterior a 1678 (el Reino Unido desde 1661), que sondatetime64[us]. - Metadatos.
attrs["meta"]da flujo, clave, unidades, unit_mult, sa, first, last y n por código y variable.attrs["missing"]lista también los códigos pedidos que un flujo no cubre (México no tiene NEER nominal estrecho).
Fuente: API SDMX v2 de estadísticas del BPI, https://stats.bis.org/api/v2.
Tasas, rendimientos, acciones y materias primas (puremacro.fetch.rates)
rates_panel(codes=None, *, start="1950", variables=("rate_on", "rate_3m", "yield_10y", "yield_corp_aaa", "yield_corp_baa"), refresh=False)stock_index_monthly(codes=None, *, start=None, refresh=False)commodity_prices_monthly(*, start=None, refresh=False)- Piezas básicas:
fetch_fred_many(ids)(una solicitud por id) yecb_get(flow, key, start=, end=, last_n=)(una consulta al ECB Data Portal).
from puremacro.fetch.rates import rates_panel, stock_index_monthly, commodity_prices_monthly
r = rates_panel(start="1900") # 47 countries, (code, date) monthly
r10 = rates_panel(None, variables=("yield_10y",)) # 42 countries
px = stock_index_monthly() # 34 countries, stock_idx + stock_idx_avg
cm = commodity_prices_monthly() # WLD, 48 commodity_* columns, 1960-01..
Las columnas de rates_panel están en por ciento anual, promedios mensuales, sin ajuste estacional. Los nombres coinciden con los de stes_panel y eurostat (rate_on, rate_3m), así que los paneles se empalman por columna.
| columna | fuente (en orden) | cobertura |
|---|---|---|
rate_on |
FRED IRSTCI01{CC}M156N; miembros del euro desde su ingreso: EONIA, luego €STR desde 2019-10 |
46 países; FRA, SWE desde 1955 |
rate_3m |
FRED IR3TIB01{CC}M156N; miembros del euro desde su ingreso: EURIBOR a 3 meses; CZE, HUN, POL, ROU completados con ECB IRS |
45; CAN desde 1956 |
yield_10y |
FRED IRLTLT01{CC}M156N; ECB IRS a 10 años (28 países de la UE) llena huecos; historias retrospectivas ECB FM para EUA (1900) y JPN (1972) |
42 |
yield_corp_aaa, yield_corp_baa |
FRED AAA, BAA (Moody's) |
EUA desde 1919 |
yield_corp_de (opcional) |
Bundesbank BBSIS X2000 | DEU desde 1957 |
- Los empalmes son visibles. Cada tramo de fuente usado aparece en
attrs["meta"].attrs["complete"]esFalsecuando una serie que algún proveedor sirve falló en esta llamada (429, tiempo agotado); el tramo del BCE pudo haberla sustituido con una historia más corta, así que revisecompleteantes de congelar un CSV. - Acciones.
stock_idxes el cierre de fin de mes de Yahoo en moneda local (desde 1985 como muy pronto);stock_idx_avges el promedio mensual del BCE (EUA desde 1964, JPN desde 1972,"EMU"a pedido desde 1986). Ninguno es elshare_pricede STES, un índice de promedios con 2015 = 100. - Materias primas. La Pink Sheet del Banco Mundial, leída solo con la biblioteca estándar; las columnas llevan el prefijo
commodity_y los índices soncommodity_index_*(2010 = 100). - Caché. Vigencia de 30 días; un cuerpo en caché que ya no se puede interpretar se vuelve a descargar una vez automáticamente.
ILOSTAT: ilostat_panel (puremacro.fetch.ilostat)
ilostat_panel(codes=None, *, freq="A", variables=None, start=None, end=None, modelled=False, refresh=False, timeout=300.0, pause=3.0) devuelve las series armonizadas de encuestas de fuerza laboral de ILOSTAT para todas las economías informantes.
| columna | flujo / MEASURE de ILOSTAT | unidades | frecuencia |
|---|---|---|---|
| emp, une, lf, wap | DF_EMP_TEMP / DF_UNE_TUNE / DF_EAP_TEAP / DF_POP_XWAP _SEX_AGE_NB |
miles de personas | A Q M |
| urate, prate, epop | DF_UNE_DEAP / DF_EAP_DWAP / DF_EMP_DWAP _SEX_AGE_RT |
porcentaje | A Q M |
| emp_ees, emp_self | DF_EMP_TEMP_SEX_STE_NB, STE_AGGREGATE_EES / _SLF | miles de personas | A Q M |
| hours | DF_HOW_TEMP_SEX_NB | horas semanales por ocupado | A Q M |
| informal_rate | DF_EMP_NIFL_SEX_RT | porcentaje del empleo | A Q (M escasa) |
| labour_share | DF_LAP_2GDP_NOC_RT (modelado por la OIT) | porcentaje del PIB | A |
*_model (modelled=True) |
DF_EMP_2EMP, DF_UNE_2EAP, DF_EAP_2EAP, DF_POP_2WAP, DF_EMP_2EMP_SEX_STE, DF_HOW_2EMP | como arriba | A |
- Definiciones. Cada serie es el total de 15 años y más, ambos sexos, sin ajuste estacional salvo las tasas mensuales de la UE que ILOSTAT retransmite de Eurostat desestacionalizadas (
meta[i]["sa"]). Los quiebres (OBS_STATUS == "B") permanecen en los datos y se listan enmeta["breaks"]. - Las proyecciones modeladas se recortan. Los flujos modelados publican años proyectados sin marca (dos para emp/urate/lf/hours_model, cinco para wap_model, uno para labour_share). Salvo que se dé
end, se recortan hacia atrás desde el último año de cada flujo, para que un panel congelado no dependa de la fecha de construcción; el recorte queda enmeta["trimmed_after"].modelled=Truees solo anual y lanzaValueErrorconfreq="Q"/"M"(la única excepción deliberada). - Cobertura. emp anual: 226 economías (17 desde antes de 1970, 165 desde antes de 1995); urate 224; asalariados/independientes 214; labour_share 189 (2004-2025). urate trimestral: 122 economías desde 1948T1. EUA anual desde 1947; MEX anual desde 1988 (lf/wap desde 1960), trimestral desde 1995T2; ESP anual desde 1969, trimestral desde 1986T2.
from puremacro.fetch.ilostat import ilostat_panel, ilostat_meta
a = ilostat_panel() # 12 survey variables, ~12 requests
q = ilostat_panel(freq="Q")
m = ilostat_panel(freq="M", variables=("emp", "une", "urate", "prate"))
x = ilostat_panel(["MEX", "USA", "ESP"], freq="A", modelled=True)
self_share = a["emp_self"] / (a["emp_ees"] + a["emp_self"])
ilostat_meta(a).loc["urate"]["breaks"]
Penn World Table 11.0 y Maddison 2023 (puremacro.fetch.pwt)
fetch_pwt(table="main", *, version="11.0", codes=None, start=None, refresh=False, timeout=180.0), fetch_maddison(codes=None, *, start=1950, refresh=False, timeout=180.0) y pwt_variables(table="main") descargan los archivos Stata de DataverseNL. Cada id de archivo es una publicación inmutable, así que los archivos se guardan en caché por diez años.
from puremacro.fetch.pwt import fetch_pwt, fetch_maddison, pwt_variables
main = fetch_pwt("main") # 185 economies, 1950-2023: rgdpe, rgdpna, pop, emp, hc, cn, rnna, labsh, ctfp, csh_*, pl_*
na = fetch_pwt("na") # 212 economies with v_gdp: v_c v_i v_g v_x v_m v_gdp v_gfcf (millions of current national currency), q_* (constant 2021 prices)
cap = fetch_pwt("capital") # Ic_/Ip_/Nc_/Np_/Dc_/Kc_/Kp_/Ksh_ by asset (Struc, Mach, TraEq, Other), 180 economies
lab = fetch_pwt("labor") # comp_sh, lab_sh1..4 (Gollin adjustments), labsh, yr_sch, i_* source flags
trd = fetch_pwt("trade") # pl_x1..6, pl_m1..6, csh_x1..6, csh_m1..6 (BEC categories)
mpd = fetch_maddison() # 169 economies, gdppc (2011 int. $), pop (thousands), annual from 1950; start=None goes back to 1 AD
pwt_variables("na") # published label | true units | note on stale labels
| tabla | archivo (id) | economías | años |
|---|---|---|---|
| main | pwt110.dta (554030) | 185 | 1950-2023 |
| na | pwt110_na_data.dta (554024) | 212 con v_gdp (216 códigos) | 1950-2023 (avh hasta 2025) |
| capital | pwt110_capital_detail.dta (554026) | 180 | 1950-2023 |
| labor | pwt110_labor_detail.dta (554028) | 211 códigos | 1950-2023 (avh hasta 2025) |
| trade | pwt110_trade_detail.dta (554023) | 185 | 1950-2023 |
| Maddison | maddison2023_web.dta (421303) | 169 | 1-2022 (anual desde 1950) |
- Nombres de columna publicados, valores float64; las banderas
i_*son códigos enteros explicados enattrs["value_labels"]. - La base de precios es 2021 en todas partes, aunque algunas etiquetas aún dicen "2017 prices", "2017=1" o "USA GDPo in 2011=1";
attrs["units"]declara la base verdadera. Elgdppcde Maddison está en dólares internacionales de 2011. - C + I + G + X - M no es el PIB en alrededor de un tercio de las filas de cuentas nacionales: use
v_gdpcomo denominador y nunca calcule un componente como residuo.v_gfcfes en la práctica una serie desde 1970. - El detalle de capital suma la FBCF (los
Ic_*sumanv_gfcf) en 179 de 180 economías; en Taiwán la suma es 6-8% mayor. - El empleo está en millones en todas las tablas (las personas del archivo labor se reescalan).
- Códigos.
CH2(la serie alternativa de China en PWT) se descarta salvo que se pida. Las economías desaparecidas sin PIB (ANT,CSK,SUN,YUGenna;ANTenlabor) se quedan y se listan enattrs["historical_entities"], así que cuente economías conv_gdp, no con códigos. Kosovo esRKSen PWT (XKXen el Banco Mundial y el FMI), marcado enattrs["nonstandard_codes"]: renómbrelo antes de unir. - Licencia. Ambas bases son CC BY 4.0, así que los CSV congelados se pueden compartir; cite
attrs["citation"]y, para Maddison, sigaattrs["citation_policy"](cite las fuentes originales al graficar o al usar menos de 12 países).
Fuentes: Feenstra, Inklaar & Timmer (2015), PWT 11.0, doi:10.34894/FABVLR; Bolt & van Zanden (2024), MPD 2023, doi:10.34894/INZBF2.
Qué llamada para cada concepto
| frecuencia | concepto | llamada |
|---|---|---|
| anual | PIB y componentes del gasto | wdi_panel, ana_panel, imf_nea_panel, eurostat_na_panel, fetch_pwt("na") |
| anual | producto de largo plazo, productividad, capital humano | fetch_pwt("main"), fetch_maddison |
| anual | inversión pública y privada, acervos de capital | ana_panel(sectors=True, stocks=True), imf_icsd, eurostat_na_panel(sectors=True, capital=True), fetch_pwt("capital") |
| anual | empleo, horas, desempleo, participación del trabajo | ana_panel(labor=True), ilostat_panel, imf_labour_panel, fetch_pwt("labor") |
| anual | IPC largo, crédito, precios de vivienda | bis_panel(freq="A") |
| anual | pronósticos e historia congelada del WEO | imf_weo |
| trimestral | PIB y componentes del gasto | qna_panel, imf_nea_panel(freq="Q"), eurostat_na_panel(freq="Q") |
| trimestral | inversión pública y privada | qna_sector_gfcf, eurostat_na_panel(freq="Q", sectors=True) |
| trimestral | población, empleo, desempleo, vacantes | qna_population, oecd_lfs_panel, oecd_vacancies, ilostat_panel(freq="Q") |
| trimestral | crédito, brecha de crédito, precios de vivienda, servicio de la deuda | bis_panel(freq="Q") |
| mensual | producción, precios, confianza, dinero, trabajo | stes_panel, imf_monthly_panel, eurostat_monthly_panel, ilostat_panel(freq="M") |
| mensual | tasas de política y de corto plazo, rendimientos largos y corporativos | rates_panel, bis_panel, stes_panel |
| mensual | tipos de cambio (bilaterales, efectivos) | bis_panel, bis_eer, imf_monthly_panel |
| mensual | precios de acciones y de materias primas | stock_index_monthly, commodity_prices_monthly, imf_pcps |