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