Este projeto consiste em um pipeline de ETL (Extract, Transform, Load) desenvolvido em Python para analisar a rentabilidade real da renda fixa no Brasil.
O script consome dados oficiais do governo, aplica correções financeiras utilizando a Equação de Fisher e gera visualizações analíticas. O objetivo principal é responder à pergunta: "O investimento na taxa Selic superou a inflação nos últimos 12 meses?", permitindo monitorar o ganho real e a proteção do poder de compra.
O projeto segue o fluxo clássico de Engenharia de Dados:
- Coleta automatizada de séries temporais diretamente da API de Dados Abertos do Banco Central do Brasil (SGS) via biblioteca
requests. - Séries utilizadas:
4390: Taxa Selic acumulada mensal (Juro Nominal).433: IPCA (Índice de Preços ao Consumidor Amplo - Inflação Oficial).
- Limpeza e conversão de tipos de dados com Pandas.
- Unificação das bases (
Merge) por data. -
Cálculo Financeiro: Aplicação da metodologia correta para juros reais (não apenas subtração).
-
Fórmula de Fisher:
$$(1 + Selic) \div (1 + IPCA) - 1$$
-
Fórmula de Fisher:
- Janelas Móveis (Rolling Windows): Cálculo de acumulado de 12 meses para eliminar a volatilidade mensal e visualizar a tendência anualizada.
- Analytics: Geração de gráfico destacando períodos de Ganho Real (Verde) vs Perda de Poder de Compra (Vermelho).
- Exportação: Persistência dos dados tratados em arquivo
.csv(relatorio_juro_real_brasil.csv), formatado para ingestão em ferramentas de BI (Power BI, Tableau).
- Linguagem: Python 3
- Manipulação de Dados: Pandas
- Integração API: Requests
- Visualização: Matplotlib & Seaborn
- Ambiente: Jupyter Notebook
Certifique-se de ter o Python instalado. Instale as bibliotecas necessárias:
pip install pandas requests matplotlib seaborn
- Clone este repositório:
git clone https://github.com/DanielDPereira/etl-juro-real-brasil.git
- Navegue até a pasta e execute o Notebook:
jupyter notebook ETL_Monitor_de_Juro_Real_Brasileiro.ipynb
- O script irá gerar automaticamente o arquivo
relatorio_juro_real_brasil.csvna raiz do projeto e exibir o gráfico de análise.
Trecho da lógica aplicada para o cálculo do Juro Real (Equação de Fisher):
# Cálculo do Juro Real Mensal
df_final['juro_real_mensal'] = ((1 + df_final['selic_dec']) / (1 + df_final['ipca_dec'])) - 1
# Aplicação de Janela Móvel de 12 meses (Juros Compostos)
def acumular_juros(x):
return (x + 1).prod() - 1
df_final['juro_real_12m'] = df_final['juro_real_mensal'].rolling(12).apply(acumular_juros)Daniel Dias Pereira
