Este projeto demonstra um pipeline de ETL (Extract, Transform, Load) simples utilizando a biblioteca pandas em Python. O objetivo é simular a extração de dados de múltiplas fontes (vendas, produtos e clientes), aplicar transformações e regras de qualidade (limpeza e padronização) e, finalmente, integrar e carregar os dados em um Data Mart consolidado para análise.
- Python
- Pandas (Manipulação e Transformação de Dados)
- NumPy (Uso para valores nulos,
np.nan)
O código executa as seguintes etapas:
Simula a importação de dados de três fontes diferentes, cada uma representada por um DataFrame do pandas com dados fictícios:
df_vendas: Detalhes das transações (ID da transação, SKU, Cliente, Data, Quantidade, Receita).df_produtos: Informações sobre os produtos (SKU, Nome, Categoria, Custo).df_clientes: Dados dos clientes (ID, Nome, Cidade).
Aplica diversas regras de negócio e qualidade nos dados para prepará-los para a integração:
- Padronização de Chaves: A coluna
product_skuemdf_vendasé padronizada para maiúsculas (.str.upper()) e as chaves de ligação (SKUemdf_produtoseIDemdf_clientes) são renomeadas para facilitar omerge. - Tratamento de Nulos: Valores nulos (
NaN) na colunacategoryde produtos são preenchidos com 'Desconhecida'. - Padronização de Dados: A coluna
city(cidade) emdf_clientesé padronizada para o formato Título (.str.title()). - Integração (
JOIN): Os DataFrames são unidos usandopd.merge(Vendas + Produtos, e o resultado + Clientes) para criar odf_datamartunificado. - Modelagem/Feature Engineering: Criação de colunas de métricas de negócio essenciais:
total_cost: Custo total da transação (cost * quantity).profit: Lucro da transação (revenue - total_cost).
O Data Mart final (filtrado e ordenado) é persistido em disco em um formato otimizado para sistemas de Big Data e análise.
- Formato de Saída: O
DataFramefinal é salvo comoecommerce_data_mart.parquet.
O Data Mart unificado é composto pelas seguintes colunas, prontas para consumo:
| Coluna | Tipo | Origem | Finalidade |
|---|---|---|---|
date |
object |
Vendas | Chave Temporal para Análise de Séries |
transaction_id |
int64 |
Vendas | Identificador Único da Transação |
customer_id |
object |
Vendas/Clientes | Chave de Ligação |
product_sku |
object |
Vendas/Produtos | Chave de Ligação |
name_x |
object |
Produtos | Nome do Produto (após merge) |
category |
object |
Produtos | Variável de Agrupamento Principal |
quantity |
int64 |
Vendas | Quantidade Vendida |
revenue |
float64 |
Vendas | Variável de Negócio (Receita) |
cost |
float64 |
Produtos | Custo Unitário do Produto |
total_cost |
float64 |
Transformação | Custo Total da Transação |
profit |
float64 |
Transformação | KPI Principal (Lucro da Transação) |
city |
object |
Clientes | Variável Geográfica |
- Certifique-se de ter o Python e as bibliotecas necessárias instaladas:
pip install pandas numpy pyarrow
- Execute o script Python que contém o pipeline ETL.
Após a execução, o arquivo ecommerce_data_mart.parquet será gerado no diretório raiz do projeto.
Paloma Cordeiro
- LinkedIn: [LinkedIn]
- GitHub: [GitHub]
Repositório: Projeto_ETL_Ecommerce_Data_Engineer