Как получить данные из Австралийского бюро статистики, используя pandasmdx - PullRequest
0 голосов
/ 30 января 2020

Есть ли кто-нибудь, кто получил данные ABS с помощью библиотеки pandasmsdx?

Вот код для получения данных от Европейского центрального банка (ЕЦБ), который работает.

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'), всплывающие сообщения об ошибках во 2-й строке говорят:

"{ValueError} Это агентство поддерживает только запросы данных, а не поток данных."

Есть ли способ получить данные из ABS?

документация для pandasdmx: https://pandasdmx.readthedocs.io/en/stable/usage.html#basic -использование

1 Ответ

0 голосов
/ 30 января 2020

Надеюсь, что это поможет

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) поддерживает только свои API-интерфейсы SDMX- JSON, они не отправляют сообщения SDMX-ML, как другие. По этой причине он не поддерживает функцию потока данных.

Пожалуйста, прочтите для дальнейшей справки: https://pandasdmx.readthedocs.io/en/stable/agencies.html#pre -configured-data-provider

...