Skip to content

About

Curso: Carreira Tech - Trilha Inteligência Artificial Turma: Fundamentos de Dados, Programação e Análise Preditiva com Python [T2]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

📊 Projeto DataView — Pipeline de Engenharia e Análise de Dados

Status🚀`

Python Version Pandas NumPy PEP8

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.


📚 Sumário


🏗️ Estrutura Organizacional do Repositório

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

⚙️ Tecnologias Utilizadas

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

🚀 Como Executar

Clone o repositório:

git clone https://github.com/lwallauer/SCTEC-Mini_Projeto.git

Entre na pasta:

cd SCTEC-Mini_Projeto

Instale as dependências:

pip install pandas numpy matplotlib seaborn

Forma 1 — Notebook Interativo (Recomendado)

Abra o notebook diretamente no Jupyter ou Google Colab:

📓 notebooks/dataview.ipynb

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.ipynb

Forma 2 — Script Python

Execute o pipeline completo via linha de comando:

python dataview.py

Nota: Ambas as formas produzem os mesmos outputs — datasets processados em data/, gráficos em outputs/graficos/ e relatórios em outputs/.


🔄 Arquitetura do Pipeline

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

📈 Etapas do Pipeline

RF01 — Criar ou Carregar o Dataset de Vendas

  • Simulação do cenário de e-commerce;
  • Injeção controlada de inconsistências;
  • Dados inspirados no ecossistema Olist.

RF02 — Inspecionar e Descrever os Dados

  • Tipos de dados;
  • Valores ausentes;
  • Estatísticas descritivas iniciais.

RF03 — Limpar e Tratar os Dados

  • Tratamento de valores nulos;
  • Regex para padronização de textos;
  • Conversão de datas;
  • Aplicação de regras de negócio.

RF04 — Detectar e Tratar Outliers (versões v1 e v2)

Aplicação do método estatístico IQR para obtenção de duas versões:

  • V1 — Com Outliers;
  • V2 — Sem Outliers.

RF05 — Criar Colunas Derivadas com Transformações

Criação de:

  • Receita total;
  • Ano;
  • Mês;
  • Trimestre;
  • Ano-Mês;
  • Faixas de receita.

RF06 — Calcular Métricas Agregadas (groupby)

Agrupamentos por:

  • Mês;
  • Categoria;
  • Região;
  • Faixa de valor.

RF07 — Segmentar Clientes por Nível de Gasto

Classificação em:

🥇 Ouro

🥈 Prata

🥉 Bronze

RF08 — Calcular Estatísticas com NumPy

Cálculo de:

  • Média;
  • Mediana;
  • Desvio padrão;
  • Percentis;
  • Participação percentual;
  • Broadcasting.

RF09 — Criar Visualizações com Matplotlib e Seaborn

Geração automática de:

  • Gráfico de linha;
  • Gráfico de barras;
  • Boxplot.

RF10 — Organizar o Código em Funções Reutilizáveis

Aplicação de:

  • Higher-Order Functions;
  • Callbacks;
  • Expressões Lambda.

RF11 — Ler e Escrever Arquivos (CSV e JSON)

Persistência em:

  • CSV;
  • JSON;

Validação automática da integridade dos arquivos.

RF12 — Consolidar a Análise e Salvar o Dataset Final

Consolidação da base de produção:

data/final/vendas_final.csv

📦 Granularidade Analítica Adotada

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 dimensionais dim_produtos e dim_categorias via SQL, viabilizando análise por produto individual.

⚖️ Decisão de Negócio: Por que a Versão 2 (Sem Outliers) no Dataset Final? (RF12)

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.

📊 Visualizações

📈 Receita Total por Mês

Receita por Mês


📊 Top Categorias por Receita

Top Categorias


📦 Distribuição de Receita por Região

Distribuição por Região


🌟 Boas Práticas e Qualidade de Software

✔ Conformidade PEP 8

  • Importações centralizadas;
  • Nomenclaturas padronizadas;
  • Código modular;
  • Docstrings em todas as funções.

✔ Programação Defensiva

  • Uso de .copy();
  • Tratamento de exceções;
  • Auditoria dos dados.

✔ Clean Code

  • Funções reutilizáveis;
  • Separação por responsabilidade;
  • Código legível.

✔ Vetorização

  • Pandas;
  • NumPy;
  • Broadcasting.

🔮 Próximos Passos

🧹 Refatoração PEP 8 — Limite de Caracteres por Linha

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).

🗄️ Modelagem Relacional SQL

Separação em dimensões:

  • dim_produtos
  • dim_categorias

Relacionadas por chaves estrangeiras.


⚙️ Orquestração

Integração com:

  • Apache Airflow

Para:

  • DAGs;
  • Retentativas automáticas;
  • Monitoramento do pipeline.

☁️ Data Lake

Persistência em:

  • Amazon S3;
  • Google Cloud Storage.

Com particionamento:

ano/
└── mes/
    └── dia/

🎯 Entregáveis da Avaliação

Entregável Link
📓 Notebook interativo dataview.ipynb
📁 Repositório GitHub SCTEC-Mini_Projeto
🎬 Vídeo de apresentação Assistir no Google Drive ↗

👨‍💻 Autor

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.

Leandro Wallauer


⭐ Se este projeto foi útil, considere deixar uma estrela no repositório.

About

Curso: Carreira Tech - Trilha Inteligência Artificial Turma: Fundamentos de Dados, Programação e Análise Preditiva com Python [T2]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages