Esse repositório é um projeto básico de análise de dados sobre o DataSet da Olist Store.
🚧 Este README está em constante atualização à medida que o projeto avança.
- Sobre o DataSet
- Contexto
- Esquema dos Dados
- Objetivos
- Objetivos Futuros
- O que foi feito até agora
- Recursos
Possui informações de aproximadamente 100 mil pedidos desde 2016 a 2018 realizados em inúmeros marketplaces do Brasil. Suas características permitem a visão de muitas dimensões: desde status do pedido, preço, pagamento e frete, até localização do cliente, atributos dos produtos e avaliações dos produtos escritas pelos usuários.
Esse conjunto de dados foi generosamente fornecido pela Olist, a maior loja de departamentos nacional. Olist conecta pequenas empresas de todo o Brasil com um único contrato. Esses comerciantes podem vender seus produtos através da Olist Store e enviá-los diretamente para os clientes usando parceiros de logística Olist.
Depois que um cliente compra o produto da Olist Store, um vendedor é notificado para cumprir esse pedido. Uma vez que o cliente recebe o produto, ou a data de entrega estimada é cumprida, o cliente recebe uma pesquisa de satisfação por e-mail, onde ele pode dar uma nota para a experiência de compra e anotar alguns comentários.
⚠️ Importante:
- Uma ordem pode conter múltiplos itens.
- Cada item pode ser atendido por um vendedor distinto, ou seja, um pedido pode envolver lojas diferentes.
Os dados são divididos em várias tabelas para um melhor entendimento e organização, sendo que estão relacionados entre si de acordo com o seguinte esquema:
Através desse dataset, meu objetivo inicial é realizar uma análise exploratória de dados (EDA) para observar o desempenho de vendas de uma loja e-commerce e aprender mais sobre SQL, principalmente funções JOINs mais complexas. Perguntas interessantes que eu quero responder e consultar são:
- Qual o ticket médio de compra por estado do cliente? (Usando JOIN e GROUP BY)
- Quantos pedidos foram feitos por mês? (Usando a função DATE_FORMAT e GROUP BY)
- Qual o tempo médio de entrega dos pedidos? (Calculando a diferença entre as datas de envio e de entrega)
- Quais produtos receberam as melhores e piores avaliações? (Usando JOIN com a tabela de reviews e ORDER BY)
Objetivos Futuros
Após a etapa inicial de limpeza e manipulação dos dados, os próximos passos incluem:
- Análises avançadas, como clustering (agrupamento de clientes, produtos ou vendedores)
- Criação de dashboards interativos
- Aplicação de métodos de machine learning para previsão de vendas e churn
- Otimização de processos logísticos com base nos dados coletados
- Aplicar funcionalidades da biblioteca pandas do python para visualização de gráficos
Baseado no esquema da Figura 1, realizou-se o mapeamento da Figura 2 no MySQL Workbench:
O esquema conceitual foi implementado em SQL, com ajustes nos tipos de dados dos atributos e as tabelas foram populadas com os arquivos .csv do DataSet.
A partir disso, responderam-se as questões propostas:
1. Qual o ticket médio de compra por estado?
Primeiro eu quis estabelecer uma relação entre a quantidade de vendas por Estado e depois comparar com a média de compra em cada estado de acordo com o total da compra (Peço + Frete).
![]() Figura 3: Quantidade de pedido por estado |
![]() Figura 4: Media de compra por estado |
Com as imagens podemos perceber algumas situações interessantes e que, de certa forma, fazem sentido com a realidade. Se pararmos para pensar, os estados com menor quantidade de produtos comprados apresentam uma maior média de compras e os estados com maior quantidade de produtos adquiridos, apresentam uma menor média. Isso revela que maior quantidade de compra não implica, necessariamente, uma maior média do valor de compra, o que faz sentido com a realidade.
- tables.sql: Esquema do banco de dados em SQL
- Olist Store - Dataset original (Kaggle)
- MySQL Workbench



