Source code for item.remote.sdmx

import sdmx


[docs]def get_sdmx(source=None, **args): """Retrieve data from *source* using :mod:`sdmx`. Arguments --------- source : str Name of a data source recognized by ``sdmx1``, e.g. 'OECD'. args Other arguments to :meth:`sdmx.Request.get`. Returns ------- pandas.DataFrame """ # SDMX client for the data source req = sdmx.Request(source=source) # commented: for debugging # args.setdefault('tofile', 'debug.json') # Retrieve the data msg = req.get(resource_type="data", **args) # Convert to pd.DataFrame, preserving attributes df = sdmx.to_pandas(msg, attributes="dgso") index_cols = df.index.names # Reset index, use categoricals return df.reset_index().astype({c: "category" for c in index_cols})