Coletando dados do Banco Central com Python

O ideal é que todo o processo da análise de dados econômicos e financeiros deve ser facilitado em todas as etapas, principalmente as iniciais, que constam como a coleta e tratamento de dados. Por sorte, existem pacotes e funções prontas que facilitam todo esse processo para os usuários, como é o caso do python-bcb, que nos ajuda a coletar dados do Banco Central. Neste post de hoje, mostramos como é fácil retirar esses dados.

O python-bcb é uma interface em Python estruturada para obter informações da API de dados abertos do Banco Central do Brasil. Criado por Wilson Freitas, professor dos cursos de Renda Fixa usando o R e Construindo um Banco de Dados Financeiro Automatizado com R aqui da Análise Macro.

A interface oferece diversas APIs que permitem acessar os dados de vários bancos de dados do BACEN. Sendo eles:

  •   Sistema Gerenciador de Séries Temporais (SGS);
  •   Conversor de moedas;
  •   Expectativas divulgadas pelo boletim FOCUS;
  •   Integração com o OData, fornecendo dados de Expectativas, Moedas, Taxas de Juros, IFdata e Mercado Imobiliário.

Sistema Gerenciador de Séries Temporais

O SGS consolida e divulga diversas séries econômico-financeiros mantidas pelo Banco Central e também por outras instituições. É nesse gerenciador que podemos encontrar as séries de diversos temas: Atividade Econômica, Preços, Mercado de Trabalho, Setor Externo, Finanças Públicas, Juros e etc.

São ofertadas as séries em diferentes periodicidades e formatos, portanto, somando todos os fatores, se torna um sistema ideal para coletar séries, ainda mais quando o próprio BCB oferece APIs que facilitam a extração.

Para buscar uma série do SGS com o python-bcb, seguiremos os seguintes passos:


Como exemplo, utilizamos a série da Taxa de juros - Meta Selic definida pelo Copom %a.a, identificada pelo código 432 no SGS. Vemos abaixo como é possível utilizar a função sgs.get().

Caso haja a necessidade em importar mais de uma série, também é possível. Abaixo, importamos as séries do IPCA Mensal em Var. % mensal e do IGP-M Var. % mensal.

Conversor de Moedas

O Conversor de Moedas realiza o Web Scrapping do sistema de mesmo nome do Banco Central. Permite que seja importado as cotações diárias de diversas moedas diante do real. Para saber as moedas que são possíveis de importar, e consequentemente seus respectivos símbolos, utiliza-se a função currency.get_currency_list().

A função retorna um data frame contendo as colunas com cada uma contendo os códigos numéricos da moeda, o nome completo da moeda, o símbolo de cada moeda, e o código do país, o nome do país, o tipo e a data de exclusão.

Após escolhido as moedas de interesse com base na lista do conversor, utiliza-se a função currency.get() para obter as moedas diante do real com base no seus respectivos símbolos e período.

Expectativas FOCUS

O python-bcb oferece a API Expectativas como forma de obter os dados divulgados pelo boletim FOCUS. Essa integração permite obter as expectativas de mercado de cerca de 130 instituições do mercado financeiros que participam do Sistema de Expectativa de Mercado. Para obter os dados, primeiro devemos instanciar com a classe bcb.Expectativas e obter as informações dos endpoints com o método bcb.Expectativas.describe()

Veja que é retornado os EntitySets, que são os endpoints do qual podemos importar os dados das Expectativas de Mercado, como exemplos, iremos buscar as Expectativas de Mercado Anuais.


É retornado todas as informações do endpoint escolhido, com suas respectivas colunas. Isto é útil devido ao fato de caso haja a necessidade de importações do dados já filtrados, desta forma, é possível saber quais colunas poderemos realizar os filtros.

Com todas as informações sobre o endpoint em mãos, iremos de fato importa-las com o python-bcb, utilizando a função expec.get_endpoint(), especificando o endpoint de interesse. Assim que conectamos com o endpoint, realizamos o query com  o método query(). No exemplo abaixo, realizamos esses dois procedimentos em conjunto com uma filtragem para o indicador da Selic.


OData

O OData do Banco Central permite acesso a mais dados do sistema, incluindo o API do Expectativas (bcb.Expectativas), também é possível retirar dados da PTAX (bcb.PTAX), que permite acesso a cotações de taxas de câmbio, Taxa de Juros dos bancos (bcb.TaxaJuros), dados de Instituições Financeiras (bcb.IFDATA) e dados do Mercado Imobiliário (bcb.MercadoImobiliario).

O processo de retirada de dados do OData segue o mesmo que realizamos com o bcb.Expectativas acima, sendo possível realizar com as outras APIs. Primeiro colhemos as informações da API e seus respectivos endpoints com describe(), e após, colhemos as informações de interesse com get_endpoint() e query(). Vemos um exemplo abaixo com a API TaxadeJuros.

A

No exemplo acima retiramos os dados das taxas de juros de diversas instituições bancárias do Brasil. Veja que limitamos o query para apenas 10 observações, apenas como exemplo para que não haja demoras na importação.

Quer saber mais sobre Python?

Veja nossos cursos de Python aplicado para as áreas de Análise de dados e Economia. R e Python para Economistas, Estatística usando R e Python  e  Econometria usando R e Python.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Previsões do Boletim Focus em Anos Eleitorais

Eleições são momentos de incerteza, mas os dados do Boletim Focus mostram que nem toda incerteza é igual. Ao analisar as previsões de inflação, juros e câmbio nos anos que antecederam as eleições de 2014, 2018 e 2022, este post investiga como o mercado revisa cenários macroeconômicos ao longo do tempo.

Como Medir o Ciclo das Concessões de Crédito usando Python

Este exercício apresenta uma análise quantitativa da relação entre o ciclo de concessões de crédito, a atividade econômica e a política monetária no Brasil. Utilizando a linguagem Python, o estudo aplica técnicas de decomposição de séries temporais (X13-ARIMA e Filtro HP) para isolar os componentes cíclicos dos dados. Os resultados da modelagem econométrica confirmam a pró ciclicidade do crédito em relação ao hiato do produto e sua sensibilidade às variações no hiato da taxa de juros real.

Choque de juros e renda em bens duráveis e não duráveis usando Python

Este artigo analisa a dinâmica do consumo no Brasil utilizando Python e modelos de Vetores Autorregressivos (VAR). Ao segregar bens duráveis e não duráveis, o estudo quantifica a sensibilidade a choques de juros e renda. Criamos todo o processo através do ciclo de dados: coleta, tratamento, análise de dados, modelagem e apresentação dos resultados, tudo automatizado usando a linguagem Python.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.