Este repositório contém o desenvolvimento completo do DataView, um pipeline automatizado de ponta a ponta focado no ecossistema de e-commerce brasileiro (inspirado nos padrões de dados da Olist).
O objetivo principal do sistema foi simular uma base bruta com falhas sistêmicas estruturais, aplicar um processo defensivo de higienização de dados, extrair inteligência estatística e consolidar relatórios analíticos prontos para a tomada de decisão.
- 🏗️ Estrutura do Projeto
- ⚙️ Tecnologias Utilizadas
- 🚀 Como Executar
- 🔄 Arquitetura do Pipeline
- 📈 Etapas do Pipeline
- 📦 Granularidade Analítica
- 📊 Visualizações
- 🌟 Boas Práticas
- 🔮 Próximos Passos
- 🎯 Entregáveis da Avaliação
- 👨💻 Autor
O projeto segue estritamente a arquitetura de diretórios recomendada pelas boas práticas de mercado para projetos de dados, garantindo o desacoplamento entre dados brutos, processados e outputs analíticos:
Projeto/
├── data/
│ ├── final/
│ │ └── vendas_final.csv
│ ├── processed/
│ │ ├── v1_com_outliers/
│ │ │ └── vendas_v1.csv
│ │ └── v2_outliers_tratado/
│ │ └── vendas_v2.csv
│ └── raw/
│ └── vendas.csv
├── notebooks/
│ └── dataview.ipynb
├── outputs/
│ ├── graficos/
│ │ ├── dist_regiao.png
│ │ └── receita_por_mes.png
│ ├── metricas_por_mes.csv
│ ├── segmentacao_clientes.csv
│ └── estatisticas_gerais.json
└── README.md
| Tecnologia | Finalidade |
|---|---|
| Python 3.9+ | Linguagem principal |
| Pandas | Manipulação e análise de dados |
| NumPy | Computação científica e vetorização |
| Matplotlib | Visualizações |
| Seaborn | Visualizações estatísticas |
| Regex (re) | Limpeza e padronização de textos |
| JSON | Persistência de dados |
| CSV | Armazenamento tabular |
Clone o repositório:
git clone https://github.com/lwallauer/SCTEC-Mini_Projeto.gitEntre na pasta:
cd SCTEC-Mini_ProjetoInstale as dependências:
pip install pandas numpy matplotlib seabornAbra o notebook diretamente no Jupyter ou Google Colab:
Execute célula por célula para acompanhar cada etapa do pipeline de forma interativa, com visualizações inline e saídas intermediárias.
jupyter notebook notebooks/dataview.ipynbExecute o pipeline completo via linha de comando:
python dataview.pyNota: Ambas as formas produzem os mesmos outputs — datasets processados em
data/, gráficos emoutputs/graficos/e relatórios emoutputs/.
Dados Brutos
↓
RF01 - Geração do Dataset
↓
RF02 - Auditoria Estrutural
↓
RF03 - Limpeza e Higienização
↓
RF04 - Tratamento de Outliers
↓
RF05 - Feature Engineering
↓
RF06 - Métricas Agregadas
↓
RF07 - Segmentação de Clientes
↓
RF08 - Estatísticas com NumPy
↓
RF09 - Visualizações
↓
RF10 - Funções Reutilizáveis
↓
RF11 - Exportação e Auditoria
↓
RF12 - Dataset Final
- Simulação do cenário de e-commerce;
- Injeção controlada de inconsistências;
- Dados inspirados no ecossistema Olist.
- Tipos de dados;
- Valores ausentes;
- Estatísticas descritivas iniciais.
- Tratamento de valores nulos;
- Regex para padronização de textos;
- Conversão de datas;
- Aplicação de regras de negócio.
Aplicação do método estatístico IQR para obtenção de duas versões:
- V1 — Com Outliers;
- V2 — Sem Outliers.
Criação de:
- Receita total;
- Ano;
- Mês;
- Trimestre;
- Ano-Mês;
- Faixas de receita.
Agrupamentos por:
- Mês;
- Categoria;
- Região;
- Faixa de valor.
Classificação em:
🥇 Ouro
🥈 Prata
🥉 Bronze
Cálculo de:
- Média;
- Mediana;
- Desvio padrão;
- Percentis;
- Participação percentual;
- Broadcasting.
Geração automática de:
- Gráfico de linha;
- Gráfico de barras;
- Boxplot.
Aplicação de:
- Higher-Order Functions;
- Callbacks;
- Expressões Lambda.
Persistência em:
- CSV;
- JSON;
Validação automática da integridade dos arquivos.
Consolidação da base de produção:
data/final/vendas_final.csv
Decisão de Design: A granularidade analítica deste projeto é categoria de produto, não produto individual.
No dataset sintético gerado (vendas.csv), cada registro representa uma transação associada a uma categoria (ex.: Eletrônicos, Moda, Alimentos). Essa escolha foi deliberada e reflete uma abordagem comum em análises de e-commerce de médio porte, onde o volume de SKUs individuais inviabiliza análises granulares sem camadas adicionais de modelagem dimensional.
Implicações práticas:
- As métricas de
RF06(Métricas Agregadas) são calculadas por categoria, não por produto; - Os agrupamentos e visualizações refletem essa granularidade;
- A segmentação de clientes (
RF07) é baseada no total de receita por cliente, independente de categoria ou produto; - A evolução futura (
Próximos Passos) prevê a separação em tabelas dimensionaisdim_produtosedim_categoriasvia SQL, viabilizando análise por produto individual.
Para a consolidação do pipeline no RF12 (data/final/vendas_final.csv), foi tomada a decisão estratégica de utilizar a Versão 2 (V2) dos dados, onde os outliers foram tratados e removidos via método IQR.
- O papel da V1 (Com Outliers): É fundamental para a contabilidade e relatórios financeiros retroativos, pois reflete o faturamento real absoluto do e-commerce, incluindo compras massivas ou picos atípicos.
- A escolha da V2 (Sem Outliers) para o Dataset Final: O objetivo principal deste dataset consolidado é preparar o terreno para análises preditivas e treinamento de modelos de Inteligência Artificial / Machine Learning.
⚠️ Justificativa Técnica: Algoritmos de aprendizado de máquina (como regressões e clusterizações) são altamente sensíveis a valores discrepantes extremos. Manter os outliers distorceria as funções de custo dos modelos, gerando previsões enviesadas. A V2 garante uma base estatisticamente estável, representando o comportamento padrão de consumo e garantindo a qualidade de futuras frentes de IA.
- Importações centralizadas;
- Nomenclaturas padronizadas;
- Código modular;
- Docstrings em todas as funções.
- Uso de
.copy(); - Tratamento de exceções;
- Auditoria dos dados.
- Funções reutilizáveis;
- Separação por responsabilidade;
- Código legível.
- Pandas;
- NumPy;
- Broadcasting.
Adequação completa ao limite de 79 caracteres por linha (PEP 8 E501), eliminando quebras implícitas e melhorando a legibilidade em ambientes com régua de 80 colunas (VS Code, PyCharm, Colab).
Separação em dimensões:
- dim_produtos
- dim_categorias
Relacionadas por chaves estrangeiras.
Integração com:
- Apache Airflow
Para:
- DAGs;
- Retentativas automáticas;
- Monitoramento do pipeline.
Persistência em:
- Amazon S3;
- Google Cloud Storage.
Com particionamento:
ano/
└── mes/
└── dia/
| Entregável | Link |
|---|---|
| 📓 Notebook interativo | dataview.ipynb |
| 📁 Repositório GitHub | SCTEC-Mini_Projeto |
| 🎬 Vídeo de apresentação | Assistir no Google Drive ↗ |
Projeto desenvolvido durante a formação SC-Tec | LAB365 para consolidar conhecimentos em Engenharia e Análise de Dados, abrangendo Data Cleaning, Feature Engineering, Estatística Aplicada, Visualização de Dados e boas práticas de desenvolvimento em Python:
- Engenharia de Dados;
- Data Cleaning;
- Feature Engineering;
- Estatística Aplicada;
- NumPy;
- Pandas;
- Visualização de Dados;
- Programação Defensiva;
- PEP 8;
- Clean Code.


