https://github.com/bessarodrigo/database-connection_eda_dre_ecbahia
Este projeto processa dados contábeis a partir de um arquivo Excel, inserindo-os em um banco de dados PostgreSQL para uma análise financeira detalhada.
https://github.com/bessarodrigo/database-connection_eda_dre_ecbahia
postgresql python sql
Last synced: 2 months ago
JSON representation
Este projeto processa dados contábeis a partir de um arquivo Excel, inserindo-os em um banco de dados PostgreSQL para uma análise financeira detalhada.
- Host: GitHub
- URL: https://github.com/bessarodrigo/database-connection_eda_dre_ecbahia
- Owner: bessarodrigo
- Created: 2024-07-29T19:00:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-14T18:59:45.000Z (over 1 year ago)
- Last Synced: 2025-04-02T18:12:53.774Z (over 1 year ago)
- Topics: postgresql, python, sql
- Language: Jupyter Notebook
- Homepage:
- Size: 43 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Projeto de Inserção de Dados Contábeis no PostgreSQL
Este projeto é uma aplicação prática do uso de Python e SQLAlchemy para carregar dados contábeis de um arquivo Excel para um banco de dados PostgreSQL. Utilizamos a metodologia CRISP-DM para estruturar a análise dos dados.
## Artigo no Medium
[Análise Financeira do Esporte Clube Bahia: aplicando a Metodologia CRISP-DM](https://medium.com/@reisrodri/an%C3%A1lise-financeira-do-esporte-clube-bahia-aplicando-a-metodologia-crisp-dm-com-python-postgresql-3275be6e375d)
## Estrutura do Projeto
O projeto consiste em 6 etapas principais:
1. **Business Understanding**: Compreensão dos requisitos e objetivos do negócio.
2. **Data Understanding**: Coleta e exploração inicial dos dados.
3. **Data Preparation**: Preparação e limpeza dos dados.
4. **Modeling**: Criação das tabelas no banco de dados.
5. **Evaluation**: Verificação dos dados inseridos.
6. **Deployment**: Implementação e documentação do projeto.
## Tecnologias Utilizadas
- Python
- Pandas
- SQLAlchemy
- PostgreSQL
## Como Executar
### Pré-requisitos
- Python 3.8 ou superior
- PostgreSQL instalado e em execução
- Biblioteca SQLAlchemy instalada (`pip install SQLAlchemy`)
- Biblioteca Pandas instalada (`pip install pandas`)
### Configuração
1. Clone o repositório para sua máquina local.
2. Defina a string de conexão para seu banco de dados PostgreSQL.
3. Ajuste o caminho do arquivo Excel para o local correto no seu sistema.
### Executando o Código
```python
import numpy as np
import pandas as pd
from sqlalchemy import create_engine, text, Table, Column, String, Float, Date, MetaData
# Caminho do arquivo Excel
excel_file = r'C:\Users\rodri\Downloads\DRE_PowerBI.xlsx'
# Carregar e processar dados da Tabela Razão Contábil
df = pd.read_excel(excel_file, sheet_name='Fato.RazaoContabil')
df.drop(columns=['Lote', 'Doc.', 'SEQ', 'Histórico'], inplace=True)
df.rename(columns={'CR': 'Centro_Resultado', 'Descrição CR': 'Descricao_Centro_Resultado', 'Conta': 'Conta', 'Descrição Conta': 'Descricao_Conta', 'Data': 'Data', 'Débito': 'Debito', 'Crédito': 'Credito', 'Saldo': 'Saldo'}, inplace=True)
# Configuração da conexão com o banco de dados
postgres_str = 'postgresql://postgres:123456789@localhost:5432/esquadrao'
engine = create_engine(postgres_str)
# Criação do schema dre_ecbahia
with engine.connect() as connection:
connection.execute(text("CREATE SCHEMA IF NOT EXISTS dre_ecbahia;"))
metadata = MetaData(schema='dre_ecbahia')
# Definição da tabela f_razao_contabil
f_razao_contabil = Table('f_razao_contabil', metadata,
Column('Centro_Resultado', String),
Column('Descricao_Centro_Resultado', String),
Column('Descricao_Conta', String),
Column('Conta', String),
Column('Debito', Float),
Column('Credito', Float),
Column('Data', Date),
Column('Saldo', Float)
)
# Criação da tabela no banco de dados
metadata.create_all(engine)
# Inserção dos dados na tabela f_razao_contabil
df.to_sql('f_razao_contabil', engine, schema='dre_ecbahia', if_exists='append', index=False)
# Verificação dos dados inseridos
with engine.connect() as connection:
result = connection.execute(text("SELECT * FROM dre_ecbahia.f_razao_contabil LIMIT 5;"))
for row in result:
print(row)
# Repita os mesmos passos para as outras tabelas (d.PlanoContas, d.MapaDRE, d.DRE (Resumida), d.Balancete)
## Estrutura dos Dados
O arquivo Excel contém várias abas, cada uma representando diferentes tabelas:
- **Fato.RazaoContabil**: Contém dados de razão contábil.
- **d.PlanoContas**: Contém o plano de contas.
- **d.MapaDRE**: Contém o mapa do DRE.
- **d.DRE (Resumida)**: Contém uma versão resumida do DRE.
- **d.Balancete**: Contém o balancete.
Cada aba é carregada, processada e inserida no banco de dados PostgreSQL.
## Contato
Para dúvidas ou sugestões, entre em contato pelo LinkedIne-mail: https://www.linkedin.com/in/rodrigo-bessa/