首页 > 解决方案 > 如何使用 pandasmdx 从澳大利亚统计局获取数据

问题描述

有没有人使用 pandasmsdx 库获得 ABS 数据?

这是从正在运行的欧洲中央银行 (ECB) 获取数据的代码。

from pandasdmx import Request
ecb = Request('ECB')  
flow_response = ecb.dataflow()
print(flow_response.write().dataflow.head())
exr_flow = ecb.dataflow('EXR')
dsd = exr_flow.dataflow.EXR.structure()
data_response = ecb.data(resource_id='EXR', key={'CURRENCY': ['USD', 'JPY']}, params={'startPeriod': '2016'})

但是,当我更改Request('ECB') 为时Request('ABS'),第二行中的错误弹出窗口说,

“{ValueError}这个机构只支持数据请求,不支持数据流。”

有没有办法从 ABS 获取数据?

pandasdmx 的文档:https ://pandasdmx.readthedocs.io/en/stable/usage.html#basic-usage

标签: jsonpython-3.xpython-requestssdmx

解决方案


希望这会有所帮助

from pandasdmx import Request

Agency_Code = 'ABS'
Dataset_Id = 'ATSI_BIRTHS_SUMM'
ABS = Request(Agency_Code)
data_response = ABS.data(resource_id='ATSI_BIRTHS_SUMM', params={'startPeriod': '2016'})

#This will result into a stacked DataFrame
df = data_response.write(data_response.data.series, parse_time=False)

#A flat DataFrame
data_response.write().unstack().reset_index()

澳大利亚统计局 (ABS) 只支持他们的 SDMX-JSON API,他们不会像其他人一样发送 SDMX-ML 消息。这就是它不支持数据流功能的原因。

请阅读以供进一步参考:https ://pandasdmx.readthedocs.io/en/stable/agencies.html#pre-configured-data-providers


推荐阅读