Pegando dados macroeconômicos com Quandl em Python
Como obter dados históricos sobre indicadores de macroeconomia com a biblioteca Quandl usando Python
Macroeconomia?
Estou fazendo um minicurso sobre programação em Python para manipulação de dados macroeconômicos. O uso não trivial, para mim, da linguagem, além dessa utilização, tem sido bem interessante. Em minha arrogância de programador experiente, acabei descobrindo muita coisa que nunca vi. Tem material bom e "digrátis" no site deles, e os cursos pagos são bem legais e com preços acessíveis:
Feito o jabá não encomendado, continuemos.
Dados mundiais em um só lugar, podem ser obtidos com a empresa Quandl, que disponibiliza uma API, e blibliotecas para R, Python e Excel.
Para usar, basta cadastrar-se para obter um token de acesso a ser usado na API.
Se você já programa, siga por aqui, se não, recomendo seguir pelos tutoriais da Trading com Dados primeiro. Mas se quiser seguir por aqui, e eu não tiver explicado algo bem o suficiente (100% de chances disso ocorrer), é só falar comigo.
Começando
Eles estão usando Jupiter Notebook, mais adequado à exploração e ao objetivo do curso, mas o que me interessa aqui é o acesso aos dados.
Então, dada uma virtualenv (há outras opções, eu uso algo que me permite ter versões difrentes de python, pyenv), instale os pacotes necessários:
pip install quandl matplotlib python-decouple
Esse comando, além de outras dependências, instalará também a Pandas e Requests.
Instalamos também a biblioteca python-decouple, que nos permitirá gerenciar melhor o token de acesso à API.
Primeiro programa
Ao fazer o cadastro no site da Quandl, em Account Settings há um campo YOUR API KEY. Copie esse valor para um arquivo chamado .env, dessa forma:
QUANDL_API_KEY=COLOQUE_SUA_API_KEY_AQUI
E então crie esse programa no arquivo ipca.py
:
import quandl
from decouple import config
quandl.ApiConfig.api_key = config('QUANDL_API_KEY')
ipca = quandl.get('BCB/13522', start_date='2010-01-01')
print(ipca.head())
Executando com python ipca.py
, tem-se essa saída:
Value
Date
2010-01-31 4.59
2010-02-28 4.83
2010-03-31 5.17
2010-04-30 5.26
2010-05-31 5.22
O método head()
é da biblioteda Pandas, pois IPCA é um objeto DataFrame
. Se quiser o retorno como um objeto numpy
, basta passar a opção returns='numpy'
no método get
. Mais informações e opções na página de ajuda sobre Python.
Esse código, BCB/13522, deve ser procurado na página do Quandl mesmo. Para indicadores oficiais, por exemplo, pode-se buscar por BCB (Banco Central do Brasil), que direcionará para uma página especial, de dados específicos do Banco Central do Brasil no Quandl.
Há um campo de busca dedicado a esses índices. Outros índices interessantes são (Petróleo é um índice dado pelo governo dos EEUU):
| Indicador | Código |
| :-- | :-- |
| Taxa SELIC | BCB/432 |
| PIB Brasil | ODA/BRA_NGDPD |
| Dólar | BCB/10813 |
| Ouro | BCB/4 |
| CDI | BCB/4392 |
| Petróleo | EIA/PET_RWTC_D |
Por hoje é só. Próxima brincadeira, gerar gráficos de cada coisa, e gráficos de várias coisas juntas. Também umas dúvidas em relação ao uso desses dados e ao armazenamento local, coisa que irei pesquisar e compartilhar.