Git Product home page Git Product logo

python-bcb's Introduction

python-bcb

python-bcb é uma interface em Python estruturada para obter informações da API de dados abertos do Banco Central do Brasil.

Downloads image Sphinx workflow

O projeto de Dados Abertos do Banco Central do Brasil disponibiliza diversas APIs provendo acesso direto a dados de:

  • Moedas
  • Taxas de Juros
  • Índices de preços
  • Informações de Instituições Financeiras
  • Expectativas do Mercado (Expectativas do Boletim FOCUS)
  • E muito outros ...

Instalação

python-bcb está disponível no Python Package Index e pode ser instalado via pip usando.

pip install python-bcb

APIs

SGS

Utiliza o webservice do SGS (Sistema Gerenciador de Séries Temporais <https://www3.bcb.gov.br/sgspub/>_) para obter os dados.

Conversor de Moedas

Implementado no módulo currency, um conjunto de funções que realiza webscraping no site do Conversor de Moedas do Banco Central, possível obter séries temporais de frequência diária de diversas moedas.

Moedas OData

O Banco Central disponibiliza diversas informações em APIs que seguem o padrão OData. A classe bcb.PTAX implementa uma API OData que entrega os boletins diários de taxas de câmbio do Banco Central. Esta API entrega mais informações do que o que é obtido no Conversor de Moedas.

Expectativas

A API de Expectativas de Mercado traz todas as estatísticas das variáveis macroeconômicas fornecidos por um conjuto de instituições do mercado financeiro. A classe bcb.Expectativas implementa essa interface no padrão OData.

python-bcb's People

Contributors

aspeddro avatar royopa avatar wilsonfreitas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-bcb's Issues

Tornar o filtro e parâmetros versáteis na API do PTAX

A API PTAX tem um formato específico para os parâmetros de data (inicial e final).

Os argumentos poderiam ser versáteis para aceitar str iso e datetime e Timestamp.
Estes seriam os formatos padrão de data da biblioteca e a partir deles a formatação correta seria realizada.

Filtro de `DataReferencia` não está funcionando

Olá, ao fazer uma consulta na Entity Expectativas eu não consigo filtrar pela DataReferencia. Veja:

from bcb import Expectativas
ep = em.get_endpoint("ExpectativaMercadoMensais")
dtest = (ep.query().filter(ep.DataReferencia <= '2022-01-01').collect())
dtest['DataReferencia'].max()
'12/2024'

A DataReferencia retornada é maior que a solicitada. Estou fazendo algo errado?

# Obs.: Para o campo `Data` funciona
dtest = (ep.query().filter(ep.Data <= '2010-01-01').collect())
dtest['Data'].max()
'2009-12-31'

Refazer output do método describe

O método describe das classes odata entregam resultados a prestação.

O método describe da classe mostra os endpoints e depois o usuário passa o endpoint para o describe para ver o que é retornado.

Quando há vários endpoints o trabalho é chato.

Uma alternativa é fazer o describe da classe retornar tudo de uma vez.

Criar operador or para a consulta

Podemos realizar consultas complexas com filter

ep.query()
     .filter(ep.Indicador == 'IPCA', ep.DataReferencia == 2023)
     .filter(ep.Data >= '2022-01-01')
     .filter(ep.tipoCalculo == 'C')

Todos estes filtros são and.
Talvez possamos implementar um or na consulta.

ep.query()
     .filter(ep.Indicador == 'IPCA' or ep.Indicador == 'IGP-M')
     .filter(ep.DataReferencia == 2023)
     .filter(ep.Data >= '2022-01-01')
     .filter(ep.tipoCalculo == 'C')

Endpoint ExpectativasMercadoInflacao12Meses não retorna inflação futura

Olá! Primeiro gostaria de parabenizar pelo pacote!

Tentei obter a expectativa de inflação mensal para os próximos 12 meses, mas ela retornou até Março somente:

from bcb import Expectativas
em = Expectativas()
ep = em.get_endpoint("ExpectativasMercadoInflacao12Meses")
print(ds_bacen['Data'].max())
2023-03-31

Está certo? Não deveria retornar até Março de 2024?

adicionar um nome padrão para séries obtidas com o `bcb.sgs.get`

Olá, primeiramente obrigado por disponibilizar esta API.

Uma sugestão: adicionar um .name para a série baixada, por exemplo:

from bcb import sgs
xx = sgs.get(1)
xx.iloc[:, 0].name
# '1'
# 
# Eu esperaria algo como `' 1 - exchange rate - free - united states dollar (sale) - 1'`.
# Fonte: https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarSeries&series=1

Sei que a API permite um dicionário mas suponho que essa informação já venha junto à requisição.

Obrigado novamente.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.