如何使用pandasmdx从澳大利亚统计局获取数据

时间:2020-01-30 05:52:35

标签: json python-3.x python-requests sdmx

有人用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

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助

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