Projeto de Desenvolvimento rápido de aplicações python: Painel Interativo de Perfil de Compra de Clientes
O seguinte projeto trata-se do desenvolvimento de um painel interativo construído em linguagem Python com as bibliotecas Plotly e Streamlit para visualização de dados e as bibliotecas pandas e Numpy para manipulação de dados. O dataset utilizado neste projeto foi baixado neste link e tem o registro de 3900 clientes com 18 colunas de uma loja de roupas dos Estados Unidos, que nesse projeto denominamos a loja com o nome “Clothing Store” e criamos uma logo para representá-la e fazer parte do painel interativo, com as visualizações, filtros e cartões, ambos, com o intuito de facilitar a tomada de decisões informadas e entregar um projeto visualmente elegante. O projeto seguiu etapas de pré-processamento de dados em um arquivo jupyter notebook e construção do painel interativo com duas páginas em arquivos py, além de discussões e planejamento sobre como entregar um projeto útil para os tomadores de decisão.
| Campo | Descrição |
|---|---|
| Customer ID | Identificador exclusivo para cada cliente |
| Age | Idade do cliente |
| Gender | Gênero do cliente (Masculino/Feminino) |
| Item Purchased | O item comprado pelo cliente |
| Category | Categoria do item adquirido |
| Purchase Amount (USD) | O valor da compra em USD |
| Location | Local onde a compra foi realizada |
| Size | Tamanho do item adquirido |
| Color | Cor do item adquirido |
| Season | Temporada durante a qual a compra foi feita |
| Review Rating | Classificação dada pelo cliente para o item comprado |
| Subscription Status | Indica se o cliente possui uma assinatura (Sim/Não) |
| Shipping Type | Tipo de envio escolhido pelo cliente |
| Discount Applied | Indica se foi aplicado desconto na compra (Sim/Não) |
| Promo Code Used | Indica se um código promocional foi usado para a compra (Sim/Não) |
| Previous Purchases | A contagem total de transações concluídas pelo cliente na loja, excluindo a transação em andamento |
| Payment Method | Método de pagamento preferido do cliente |
| Frequency of Purchases | Frequência com que o cliente realiza compras (ex: Semanal, Quinzenal, Mensal) |
- Verificação da estrutura do projeto, valores nulos e duplicatas.
- Dados estavam em ótimo formato, sem necessidade de modificações.
- Por motivos didáticos e de fácil interpretação, foi decidido traduzir os dados de inglês para português.
- Renomeação de colunas e valores categóricos.
- Criação de uma coluna adicional baseada na localização dos clientes.
- Inclusão dos códigos dos estados americanos para reconhecimento no gráfico do mapa.
- Salvamento do arquivo modificado denominado como
df. - Este arquivo será utilizado nas análises na etapa da construção do painel interativo.
- Optou-se por construir duas páginas com a biblioteca Streamlit:
- Primeira Página: Focada na distribuição de clientes.
- Segunda Página: Focada nos valores de compra dos clientes.
- Ambas as páginas possuem:
- Sidebar: Botões de navegação, logo da loja e filtros.
- Conteúdo Principal: Cartões KPIs relevantes e gráficos.
- Tipos de gráficos utilizados: barras, setores, treemap e mapa.
- Objetivo: Variar os gráficos no projeto e facilitar a geração de insights.
Primeira Página:
- Seis gráficos referentes à contagem de clientes:
- Gráfico de mapa: Quantidade de clientes por localização.
- Gráfico de pizza: Clientes por temporada.
- Três gráficos de barra: Métodos de pagamento, tipo de envio e frequência de compra dos clientes.
- Gráfico treemap: Categoria do produto, item comprado e tamanho do item.
- Objetivo: Visão geral da quantidade de clientes na loja segundo diferentes atributos.
Segunda Página:
- Seis gráficos referentes ao valor de compra dos clientes:
- Gráfico de mapa: Valor total em cada localização.
- Gráfico de pizza: Valor comprado por temporada.
- Três gráficos de barra: Valores de compra por métodos de pagamento, tipo de envio e frequência de compra dos clientes.
- Gráfico treemap: Total comprado por categoria do produto, item comprado e tamanho do item.
- Objetivo: Visão geral da situação de compra dos clientes na loja segundo diferentes colunas do dataset.
📍 Link do Deploy do Painel Interativo
import streamlit as st
import pandas as pd
import numpy as np
import plotly.express as px
from PIL import Image
├── requirements.txt <- O arquivo de requisitos para reproduzir o ambiente de análise, por exemplo, gerado com `pip congelamento > requisitos.txt
│
├── LICENSE
│
├── README.md <- O Readme de nível superior para desenvolvedores que usam esse projeto
│
├── streamlit <- configuração do design do layout
│
├── Imagem <- Contém a logo do projeto
│
├── Documentação <- Contém a documentação do projeto e a apresentação feita em sala de aula
│
├── pages <- Contém a páginas utilizadas no projeto, aqui apenas a 2º página
│
├── 1_clientes <- Página principal de inicialização do projeto
│
├── painel <- Capturas do painel interativo e arquitetura
│
├── datasets <- datasets utilizados no projeto, incluindo o arquivo original e o arquivo após o processamento.
│ ├── shopping_trends.csv <- datasets de perfil de clientes original
│ ├── df.csv <- datasets modificado
│
└──notebook <- caderno jupyter notebook utilizado para o pré-processamento de dados
Conteúdos de referência: