Alura > Cursos de Inteligência Artificial > Cursos de IA para Dados > Conteúdos de IA para Dados > Primeiras aulas do curso IA aplicada a Data Science: utilizando IA na construção de visualização de dados

IA aplicada a Data Science: utilizando IA na construção de visualização de dados

Conhecendo os dados - Apresentação

Será que conseguimos utilizar a Inteligência Artificial (IA) para o desenvolvimento de gráficos e visuais em um projeto de análise de dados? Uma possível resposta para essa pergunta está em otimizar o processo da análise exploratória e visualização de dados sem ter um vasto conhecimento na linguagem Python.

É esse curso que vamos utilizar para responder a essa pergunta e todas as outras que podem surgir quando estamos construindo algo dentro desse tema. Este curso estará focado no uso da IA como suporte para a criação de visuais de dados.

Meu nome é Alfonso Rios, sou instrutor aqui da Escola de Data Science da Alura!

Audiodescrição: Alfonso Rios é um homem de cabelos e olhos castanhos escuros. Possui uma barba pequena. Veste uma camisa preta com um símbolo, com uma palavra escrita "Caelum" em amarelo. Ao fundo, há uma parede com cores em tons azul, cinza e branco e algumas decorações que remetem ao futebol e à Alura.

O que vamos aprender?

Neste curso, atuaremos como analistas de dados da Zoop, uma grande varejista que entrega em todas as regiões do Brasil por meio do seu e-commerce. Para ajudar na criação de relatórios que abordam tanto a parte das vendas quanto o perfil dos clientes, utilizaremos um projeto que inclui a exploração dos dados e a criação de visuais representativos desses temas.

Além disso, refinaremos todos esses gráficos utilizando a IA do ChatGPT e, por fim, salvaremos essas imagens geradas para serem utilizadas no relatório da Zoop.

O que vamos utilizar?

Para este projeto, utilizaremos projetos que já foram testados e criados com o ChatGPT dentro do ambiente do Google Colab. Este Google Colab será disponibilizado a partir da próxima atividade.

Para deixar claro, pode ser que quando você for rodar esses projetos no seu computador ou por meio da sua conta do ChatGPT, é possível que as respostas não sejam exatamente iguais às que estou trazendo aqui dentro do curso. Isso se dá à aleatoriedade que as generativas possuem.

Isso não é um problema, basta que você tenha muito cuidado na execução e analise se aquele código que foi gerado realmente vai servir para o seu projeto.

Pré-requisitos

Para que você possa aproveitar este projeto, é importante que você já tenha conhecimento de algumas bibliotecas de manipulação e visualização de dados da linguagem Python, como o Pandas, o Matplotlib e o Seaborn.

Com todas essas expectativas alinhadas, vamos começar o nosso projeto?

Conhecendo os dados - Obtendo os dados

Contextualizando

Você é uma pessoa analista de dados na Zoop, uma grande empresa de e-commerce que atende todo o Brasil. Recebemos uma demanda do nosso departamento de dados para analisar os dados dos clientes e das vendas da Zoop no ano de 2023.

Nosso objetivo é explorar esses dados e criar visualizações para responder a algumas perguntas levantadas pelas partes interessadas, a fim de construir um relatório de storytelling da Zoop.

Analisaremos aspectos como o faturamento da loja e o perfil do cliente, incluindo a participação ou não no programa de cashback da Zoop, entre outros fatores. Temos um tempo bastante curto para realizar tanto a análise exploratória quanto a geração de visualizações.

No entanto, os dados que vamos receber pelo GitHub já estão tratados, então não precisamos nos preocupar com a limpeza e tratamento dos dados.

Além disso, precisamos conduzir todo esse processo utilizando nosso conhecimento em análise de dados com a linguagem Python. Ou seja, vamos extrair os dados, lê-los, interpretá-los e construir as visualizações com o auxílio de uma IA.

Extração

Leitura

Análise

Visuais

No nosso exemplo, trabalharemos com a IA do ChatGPT.

O ChatGPT vai nos auxiliar a ser rápidos tanto na tarefa da exploração dos dados, quanto na geração e refinamento dos gráficos para que estejam prontos para entrar no relatório da empresa Zoop.

Também precisaremos passar por algumas etapas para entender quais técnicas podemos empregar para melhorar nossas visualizações. Não basta apenas criá-las, mas também precisamos garantir que elas estejam alinhadas com a identidade da Zoop.

Construiremos todo esse processo dentro de um Google Colab, que é um documento que possui tanto blocos executáveis quanto blocos de texto. É um documento ideal para realizar análises de dados e documentar todo o processo que estamos criando.

Agora entraremos no nosso ambiente do Google Colab, que é uma espécie de notebook. Aqui já podemos verificar, por exemplo, o símbolo da Zoop. Todo esse processo, esse storytelling da Zoop, as necessidades, as bases de dados, tudo está descrito aqui para que você possa ler com calma.

Aula 1 - Conhecendo os dados

A Zoop é uma grande varejista que atende a todas as regiões do Brasil por meio do seu e-commerce. Ela é conhecida pela ampla variedade em seus produtos buscando atender a todo tipo de público. Ela possui uma série de centros de distribuição (CDs) para entrega de seus produtos, com grande parte situada no estado de São Paulo.

Para gerenciar o seu alcance, bem como o faturamento de seu setor em lojas online, ela consolida os dados em diferentes períodos de tempo e avalia esses dados para gerar insights e tomar algumas decisões estratégicas em seu negócio. Neste projeto, vamos ter acesso aos dados de parte da sua clientela do e-commerce dentro do ano de 2023.

Você, como analista de dados da empresa, precisará gerar visuais que auxiliem na construção de relatórios de acordo com algumas premissas passadas pelas partes interessadas realizando uma rápida análise do público que possuímos na loja virtual e do faturamento da empresa.

Problema de negócio:

O time de dados da Zoop precisa extrair os dados e gerar informações por meio de visuais que possam ser apresentados à diretoria da empresa apontando os dados de faturamento, perfil do cliente e outros indicadores que possam auxiliar na tomada de decisão em sua loja online.

Base de dados

Vamos importar duas bases de dados:

Dados de clientes do e-commerce da Zoop, separados pelo código identificador da compra.

Dados de vendas do e-commerce da Zoop em 2023, separados pelo código identificador da compra.

Esses dados serão lidos a partir do repositório compartilhado pelo GitHub.

Desafio

Você, como analista de dados do time de dados da Zoop, tem o desafio de extrair os dados de ambas as bases e construir visuais que possam agregar valor à apresentação dos resultados da Zoop em 2023. Para isso, serão repassados ao todo 7 questionamentos que foram separados para que você possa contribuir na construção do storytelling das vendas da empresa.

Para agilizar o processo da análise exploratória dos dados (AED) e a criação dos visuais, utilizaremos a IA do ChatGPT como nossa assistente, tudo isso levando em conta o prazo curto para as análises e a qualidade da entrega.

Nosso processo inicial agora será a obtenção dos dados.

Obtendo os dados

Vamos acessar os links do repositório que contém tanto a base de dados de clientes quanto a base de dados de vendas e vamos abrir esses arquivos. No Google Colab estão os URLs para referência.

url_clientes = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_clientes.csv"

url_vendas = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_vendas.csv"

Nós temos uma URL para os dados dos clientes, localizada dentro do repositório na pasta "ia-datascience-dataviz/main/dados/zoop_clientes". Além disso, o URL para os dados de vendas também está localizado neste mesmo caminho, contendo um arquivo CSV chamado "zoop_vendas".

Ambas as bases de dados estão no formato CSV e são acessíveis publicamente, não requerendo uma conta do GitHub para acesso, apenas a URL correspondente.

Rodamos essas URLs clicando no ícone de play do lado esquerdo.

Após rodarmos a URL, o que acontece? Ela vai salvar esses caminhos dentro das variáveis url_clientes e url_vendas. Essa primeira execução demora um pouco mais, porque é no Colab, então ele está alocando a máquina na nuvem e por isso tem essa demora na primeira execução.

Assim que terminarmos, criaremos os dois dataframes que utilizaremos em nosso projeto.

Importando a biblioteca

Primeiramente, importaremos a biblioteca do pandas, que é a ferramenta utilizada para a manipulação de dados. Então, digitamos na próxima célula import pandas as pd.

import pandas as pd

Executamos a célula.

Realizando a leitura e visualização da tabela clientes

Agora, faremos a leitura de uma das nossas tabelas, começando pela tabela de clientes. Faremos isso com o seguinte código: clientes = pd.read_csv(url_clientes), o qual criará o nosso dataframe.

Com clientes estamos passando os valores para dentro de uma variável chamada clientes para gerar o dataframe. Na sequência, inserimos o pd.read_csv() para realizar a leitura de um CSV, passando a url_clientes (caminho do arquivo).

clientes = pd.read_csv(url_clientes)

Executamos a célula.

Para visualizar este dataframe, podemos, por exemplo, ler as primeiras cinco linhas. Assim, executaremos clientes.head().

clientes.head()

Obtemos como retorno da visualização:

#ID_compraID_clientecidadeufregiaoidadesexo_biologicocashbackavaliacao_compra
09048972NatalRio Grande do NorteNordeste49MasculinoNão9
146135120São PauloSão PauloSudeste49FemininoNão9
255791847São PauloSão PauloSudeste24FemininoNão8
324052846São PauloSão PauloSudeste38FemininoSim7
424852715SalvadorBahiaNordeste30FemininoNão10

Ele apresentou a primeira tabela, que é a tabela de clientes da Zoop. Nela, encontramos dados como ID do cliente, informações geográficas, idade, sexo biológico, participação no programa de cashback e avaliação de compra. No entanto, vamos analisar esses dados com mais detalhes posteriormente.

Realizando a leitura e visualização da tabela vendas

Vamos agora fazer a mesma operação, mas agora para vendas. Então, na próxima célula escrevemos vendas = pd.read_csv(url_vendas).

vendas = pd.read_csv(url_vendas)

Por fim, vamos ler os últimos cinco dados. Porque já lemos os primeiros cinco no outro. Só para mudar aqui, vamos colocar vendas.tail(), que é para ler os cinco últimos dados.

vendas.tail()

Como retorno, obtemos:

#ID_compradatahorariocategoriapreco_unitarioquantidadefretemetodo_pagamento
616461412023-12-3117:49Eletrodomésticos1509.95377.48Cartão de Crédito
616561482023-12-3123:02Papelaria e escritório14.023.36PIX
616661232023-12-3121:25Alimentos e bebidas77.917.79Cartão de Crédito
616761472023-12-3121:38Livros142.9417.15Cartão de Crédito
616861222023-12-3122:11Beleza e cuidados pessoas89.9513.48Cartão de Crédito

Agora dispomos de uma tabela adicional, distinta desta vez, que é a tabela de vendas. Nela, encontramos o ID da compra, a data e horário da transação, a categoria do produto, o preço unitário, a quantidade adquirida, o valor do frete associado àquele produto e o método de pagamento utilizado.

Conclusão e Próximos Passos

Os dados que vamos utilizar já foram carregados e examinamos brevemente o conteúdo de cada um aqui.

No próximo vídeo, vamos começar a utilizar o ChatGPT como assistente, para explorar esses dados com mais detalhes e começar a planejar a criação dos gráficos que precisaremos apresentar para a equipe da Zoop.

Vamos nessa?

Conhecendo os dados - Entendendo os dados

Iniciaremos o nosso processo de exploração dos dados e como relacioná-los a fim de construir visuais. Para agilizar nossas análises, utilizaremos o auxílio da ferramenta do ChatGPT.

Utilizando o ChatGPT como assistente

O nosso desafio é o seguinte: temos duas bases: clientes e vendas, que estão separadas pelo código identificador da compra, no ano de 2023. Além disso, precisamos entender quais são esses dados e quais insights podemos obter para que possamos construir visuais a partir desses valores. E como vamos fazer essa relação também desses dados entre as tabelas.

Começaremos trabalhando com o nosso primeiro prompt do ChatGPT. No documento do Colab, já possuímos prompts que foram previamente testados, seguindo todo o fluxo da exploração do dado até a criação do visual.

Utilizaremos esses prompts para copiá-los, colá-los dentro do ambiente do ChatGPT e trazer os códigos que foram gerados a partir da leitura, da compreensão dos prompts que foram colocados nesse ambiente generativo.

É fundamental ressaltar que o código gerado, assim como as instruções fornecidas pelo ChatGPT, podem variar entre indivíduos. Contudo, é sempre recomendável realizar testes para garantir a eficácia da ideia proposta na pergunta e sua coerência dentro do contexto do storytelling que estamos desenvolvendo.

Analisando a base de clientes

Começaremos primeiro analisando a base de clientes. Temos no Colab um prompt pronto para colocar os dados dos clientes.

Prompt retirado do Google Colab:

Vamos atuar como analista de dados de um e-commerce. Recebemos duas bases de dados com os dados dos clientes e das vendas em 2023, respectivamente.

Neste primeiro momento, vamos explorar a base clientes no formato de um DataFrame, chamado "clientes". Ela contém dados dos clientes que realizaram comprar na loja virtual, sendo eles: ID da compra, ID do cliente, a cidade, estado e região da compra, idade, sexo biológico, se participam do programa de cashback e avaliação da compra.

Queremos fazer uma breve exploração dos dados para compreender um pouco sobre eles. Lembrando que os dados desta base já estão limpos e tratados. Construa um código para executar esta etapa usando o Python.

Não é necessário utilizar "print()" para mostrar o resultado das consultas.

O prompt nos diz:

"Vamos atuar como analista de dados de um e-commerce. Recebemos duas bases de dados com os dados dos clientes e das vendas em 2023, respectivamente. Neste primeiro momento, vamos explorar a base de clientes no formato de DataFrame chamado clientes.

Observe que já coloquei o nome "clientes" entre aspas para garantir que, ao gerar o código, o ChatGPT não utilize um nome genérico como "dados" ou "DF". Assim, ele utilizará o nome "clientes", conforme desejado.

Continuando: "Ela contém dados dos clientes que realizaram compra na loja virtual sendo eles: ID da compra, ID do cliente, a cidade, estado e região da compra, idade e sexo biológico, se participam do programa de cashback e a avaliação da compra".

Seguindo: "desejamos realizar uma breve análise exploratória dos dados para obter uma compreensão inicial. É importante ressaltar que os dados nesta base já foram previamente limpos e tratados". Portanto, não será necessário fornecer códigos para limpeza ou tratamento de dados. Nosso foco é exclusivamente explorar esses dados de forma rápida e eficaz.

Continuando: "Construa um código para executar essa etapa usando Python". Então, já indicamos, por padrão, normalmente ele vai entregar em Python, mas é sempre importante deixar isso claro.

Seguindo: "não é necessário utilizar print() para mostrar o resultado das consultas". Isso porque senão ele vai ficar criando variáveis com os resultados e depois printar essa variável. Assim, estamos garantindo que o código vai ser um pouco mais conciso e ele vai direto ao ponto só realmente fazendo essa exploração do meu dado.

Então, vamos agora enviar esse prompt para o ChatGPT, copiar e colar lá, e verificar o que ele produziu. Aqui está o código resultante:

# Exibindo as primeiras linhas do DataFrame para entender a estrutura dos dados
clientes.head()

# Obtendo informações gerais sobre o DataFrame, como tipos de dados e valores não nulos
clientes.info()

# Estatísticas descritivas para variáveis numéricas
clientes.describe()

# Contagem de clientes por sexo
clientes['sexo_biologico'].value_counts()

# Média de idade dos clientes
clientes['idade'].mean()

# Contagem de clientes por região
clientes['regiao'].value_counts()

# Avaliação média das compras
clientes['avaliacao_compra'].mean()

# Verificando a participação no programa de cashback
clientes['cashback'].value_counts()

Eu trouxe diretamente para o Colab porque estamos organizando por blocos para executar cada etapa separadamente.

Fiz algumas pequenas alterações, como substituir "sexo biológico" por sexo_biológico, pois o ChatGPT não trouxe o termo exato. Além disso, removi a parte referente à importação e leitura dos dados, pois isso já foi feito em aulas anteriores.

É importante mencionar que, para executar este código aqui, é necessário ter previamente executado o código anterior lá em cima, o qual cria a variável clientes, também conhecida como df_clientes, para que possamos utilizá-la nesta parte do código.

Se por acaso o documento foi fechado ou se passou muito tempo desde a última execução, basta voltar ao topo do documento, na seção de "Ambiente de execução", e selecionar a opção "executar antes" (atalho "Ctrl + F8"). Isso executará todos os códigos anteriores ao atual, permitindo-nos então executar este código sem problemas.

Exibindo a tabela de clientes

Temos como primeira etapa:

# Exibindo as primeiras linhas do DataFrame para entender a estrutura dos dados
clientes.head()

Executamos a célula.

Na primeira etapa, ele está exibindo as primeiras linhas. Esse mesmo processo que fizemos vai mostrar os 5 primeiros registros que temos do nosso clientes. Isso já foi feito, inclusive, no vídeo anterior.

Retorno da primeira etapa:

#ID_compraID_clientecidadeufregiaoidadesexo_biologicocashbackavaliacao_compra
09048972NatalRio Grande do NorteNordeste49MasculinoNão9
146135120São PauloSão PauloSudeste49FemininoNão9
255791847São PauloSão PauloSudeste24FemininoNão8
324052846São PauloSão PauloSudeste38FemininoSim7
424852715SalvadorBahiaNordeste30FemininoNão10

Obtendo informações gerais

# Obtendo informações gerais sobre o DataFrame, como tipos de dados e valores não nulos
clientes.info()

No segundo, ele vai trazer o clientes.info(). Ou seja, ele está obtendo algumas informações gerais sobre os dataframes, verificando se ele tem valores nulos, verificando a quantidade de registros que tem, quantidade de colunas. São informações mais gerais do nosso dataframe.

Se examinarmos este contexto, o que encontraremos?

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 6169 entries, 0 to 6168

Data columns (total 9 columns):

#ColumnNon-Null CountDtype
0ID_compra6169 non-nullint64
1ID_cliente6169 non-nullint64
2cidade6169 non-nullobject
3uf6169 non-nullobject
4regiao6169 non-nullobject
5idade6169 non-nullint64
6sexo_biologico6169 non-nullobject
7cashback6169 non-nullobject
8avaliacao_compra6169 non-nullint64

dtypes: int64(4), object(5)

memory usage: 433.9+ KB

Temos um total de 6.169 entradas, as quais podem ser entendidas como registros de compras ou, mais precisamente, de clientes.

No entanto, é importante destacar que se trata realmente de registros de compras, pois alguns clientes podem estar repetidos. Portanto, estamos considerando o número total de transações realizadas, independentemente do número de clientes envolvidos.

A faixa dos índices vai de 0 a 6.168. Nossos dados consistem em 9 colunas, cada uma delas descritas aqui. Importante ressaltar que não encontramos valores nulos, pois esta é uma coluna que não possui esses tipos de valores, garantindo que todos os dados estejam completamente preenchidos.

Além disso, observamos que as colunas ID_compra, ID_cliente, idade e avaliacao_compra estão no formato int (inteiro); enquanto, cidade, uf, regiao, sexo_biológico e cashback estão no formato object, indicando variáveis categóricas, textuais ou alfanuméricas.

Essas observações iniciais nos fornecem uma compreensão preliminar dos dados e de seus formatos.

Estatísticas descritivas para variáveis numéricas

# Estatísticas descritivas para variáveis numéricas
clientes.describe()

Aqui, temos outro trecho de código que envolve o clientes.describe().

O que exatamente é o describe? O describe realiza uma análise estatística descritiva das variáveis numéricas. Em outras palavras, ele extrai estatísticas como mínimo, máximo, quartis (25%, 50%, 75%), mediana e desvio padrão das variáveis numéricas presentes, que no caso são ID_compra, ID_cliente, idade e avaliacao_compra. Esses dados são então apresentados de forma resumida em uma única tabela.

#ID_compraID_clienteidadeavaliacao_compra
count6169.0000006169.0000006169.0000006169.000000
mean3085.0000005461.47528038.2600108.443670
std1780.9812372610.9599779.8389511.730584
min1.0000001005.00000018.0000000.000000
25%1543.0000003148.00000031.0000008.000000
50%3085.0000005436.00000038.0000009.000000
75%4627.0000007748.00000045.0000009.000000
max6169.0000009999.00000070.00000010.000000

Conseguimos notar aqui na tabela que, por exemplo, ID_compra e ID_cliente, ele é um número, só que é um código identificador. Então, não faz muito sentido analisar média, mediana, desvio padrão, de um número que é só para identificar a compra ou o cliente.

Então, talvez as duas colunas que façam sentido seriam a idade e a avaliacao_compra. Assim, conseguimos ter coisas interessantes, como, por exemplo, em idade, temos o cliente mais novo, tendo 18 anos, e o mais velho, tendo 70.

Temos também a média dos nossos clientes, em 38.2, por exemplo, e temos também na avaliacao_compra, a média de avaliação em 38.4, sendo que tem a avaliação que foi zero, do produto, e a avaliação que também foi dada a nota máxima, a nota 10.

Contagem de clientes por sexo

Continuando, aqui também realizamos a contagem de clientes por sexo.

# Contagem de clientes por sexo
clientes['sexo_biologico'].value_counts()

Obtemos como retorno:

Então, o que acontece é o seguinte: utilizamos o método value_counts() na coluna clientes[sexo_biológico], onde constatamos que há 3.371 clientes do sexo feminino e 2.798 do sexo biológico masculino, indicando uma maior representação do público feminino.

Média de idade dos clientes

# Média de idade dos clientes
clientes['idade'].mean()

Como retorno, temos:

38.2600097260496

Além disso, calculamos a média de idade dos clientes, que é obtida através de clientes['idade'].mean(). Essa média é de 38.2, conforme mencionado anteriormente na descrição estatística.

Contagem de clientes por região

# Contagem de clientes por região
clientes['regiao'].value_counts()

Como retorno, temos:

##
Sudeste2666
Nordeste1882
Sul819
Centro-Oeste495
Norte307
Name:regiao, dtype: int64

Também faz a contagem dos clientes por região, então ele pega o clientes['regiao'] e faz um value_counts().

Portanto, podemos observar que 2.666 clientes são provenientes da região Sudeste, seguidos por 1.882 do Nordeste, e assim por diante, com números decrescentes para as regiões Sul, Centro-Oeste e Norte.

É importante ressaltar aqui, como mencionei anteriormente, que quando falamos sobre a qualidade da compra, não estamos necessariamente contando 2.666 clientes distintos, mas sim clientes que residem na região Sudeste e realizaram uma compra. Portanto, um único cliente pode ter feito múltiplas compras dentro da Zoop.

Avaliação média das compras

# Avaliação média das compras
clientes['avaliacao_compra'].mean()

Temos, como retorno:

8.44366996271681

Seguindo adiante, também teremos a etapa de avaliação, na qual ele calcula a média das avaliações dos clientes utilizando clientes['avaliacao_compra'].mean(). Portanto, ele examinará a avaliação média, que foi de 8.44, como já observamos anteriormente no describe.

Verificando a participação no programa de cashback

Por fim, ele também verificou a participação no programa de cashback.

# Verificando a participação no programa de cashback
clientes['cashback'].value_counts()

Como retorno, temos:

##
Não3557
Sim2612
Namecashback, stype: int64

Então ele fez um value_counts() da coluna cashback, e ele previu que 3.557 é não, e 2.612 são sim. Ou seja, tem mais gente que não participa do nosso programa de cashback do que participa. E isso pode ser um tipo de variável bem interessante, um tipo de visualização que podemos trazer dentro do nosso projeto.

Vamos agora para vendas.

Analisando vendas

Também criamos um prompt para isso. E esse prompt, vai trazer um pouco das coisas que estavam no outro.

Agora vamos explorar a base de vendas no formato de um DataFrame, chamado "vendas". Ela contém dados das vendas do e-commerce, sendo eles: ID da compra, data da compra, horário da compra, categoria do produto, preco unitário do produto, quantidade vendida, frete e o método do pagamento.

Queremos fazer uma breve exploração dos dados para compreender um pouco sobre eles. Lembrando que os dados desta base também já estão limpos e tratados. Construa um código para executar esta etapa usando o Python.

Então estamos passando que vamos explorar a base de vendas no formato de DataFrame, chamado vendas, então estamos dando o nome que queremos.

Mencionamos quais são os dados que temos: ID da compra, a data da compra, o horário da compra, a categoria do produto, o preço unitário do produto, a quantidade vendida, o frete e o método do pagamento que temos.

E faremos uma breve exploração. Já deixamos claro novamente que não queremos lidar com a limpeza e tratamento dos dados, pois já os realizamos. E desejamos isso no código Python.

Observe que aqui não precisamos incluir o print(), por exemplo, para não adicioná-lo. Isso porque ele já interpretou que o código anterior segue um certo padrão. Portanto, se não pedi print anteriormente, pode ser que eu não queira print neste caso. Ele entenderá isso e me fornecerá sem a necessidade de eu explicitamente mencionar aqui.

Rodamos esse código de novo e colamos no Colab o código para a execução e a exploração do dado da base de vendas.

# Exibindo as primeiras linhas do DataFrame para entender a estrutura dos dados
vendas.head()

# Obtendo informações gerais sobre o DataFrame, como tipos de dados e valores não nulos
vendas.info()

vendas["data"] = pd.to_datetime(vendas["data"], format="%Y-%m-%d")

# Estatísticas descritivas para variáveis numéricas
vendas.describe()

# Contagem de vendas por categoria de produto
vendas['categoria'].value_counts()

# Preço médio unitário dos produtos
vendas['preco_unitario'].mean()

# Quantidade total de produtos vendidos
vendas['quantidade'].sum()

# Valor total do frete arrecadado
vendas['frete'].sum()

# Métodos de pagamento utilizados e suas frequências
vendas['metodo_pagamento'].value_counts()

Nosso código está pronto e já está disponível aqui. Então, ele vai seguir a mesma lógica do anterior.

Exibindo as primeiras linhas do DataFrame

Usaremos vendas.head() para visualizar os cinco primeiros valores e já podemos fazer isso agora.

# Exibindo as primeiras linhas do DataFrame para entender a estrutura dos dados
vendas.head()

Como retorno, temos:

#ID_compradatahorariocategoriapreco_unitarioquantidadefretemetodo_pagamento
062023-01-0320:40Eletrônicos4457.94713.26Boleto
152023-01-0321:48Ferramentas e construção115.910.00PIX
292023-01-0317:08Beleza e cuidados pessoais68.9213.78Cartão de Crédito
342023-01-0314:29Ferramentas e construção80.9540.45PIX
482023-01-0318:02Beleza e cuidados pessoais165.040.00PIX

Obtendo informações gerais sobre o DataFrame

Além disso, vamos conferir o info, onde obtemos informações gerais.

# Obtendo informações gerais sobre o DataFrame, como tipos de dados e valores não nulos
vendas.info()

Temos, como retorno:

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 6169 entries, 0 to 6168

Data columns (total 8 columns):

#ColumnNon-Null CountDtype
0ID_compra6169 non-nullint-64
1data6169 non-nullobject
2horario6169 non-nullobject
3categoria6169 non-nullobject
4preco_unitario6169 non-nullfloat64
5quantidade6169 non-nullint64
6frete6169 non-nullfloat64
7metodo_pagamento6169 non-nullobject

dtypes: float64(2), int64(2), object(4)

memory usage: 385.7+ KB

Ao contrário do anterior, notamos que algumas variáveis aqui são do tipo float, como preco_unitario e frete. E percebemos que a variável data está no formato object. Se quisermos trabalhar com gráficos mais voltados para séries temporais, faz muito sentido converter essa coluna data para o tipo datetime.

Então vamos fazer isso. Já que esse processo na importação ele não fez.

Então clicamos aqui em "+ código" e colocamos a seguinte forma: vendas, abre e fecha colchetes, abre e fecha aspas.Inserimos vendas_data, que é o nome da coluna.

Copiamos de novo que precisaremos posteriormente. Vai ser igual a pd.pd.to_datetime(), abre e fecha parênteses. Passamos vendas["data"] porque desejamos transformar vendas["data"] para o datetime e passar para o novo vendas_data.

No formato, esse format que colocamos, inserimos o formato que está no nosso dado.

Ou seja, em que formato está a nossa data? Ela está ano com quatro dígitos, mês com dois dígitos, dia com dois dígitos, separados por traços. Então passamos por format, o que? Sinal de porcentagem Y, porque são anos com quatro dígitos, sinal de porcentagem M para mês e sinal de porcentagem D.

vendas["data"] = pd.to_datetime(vendas["data"], format="%Y-%m-%d")

Executamos a célula.

E aqui ele entenderá que é necessário converter aquela data para o formato datetime.

datetime64[ns]

Para verificar se tudo está correto, executamos novamente o info, pois ele mostrará o tipo de dado atual. Já podemos observar que agora é do tipo datetime.

Estatísticas descritivas para variáveis numéricas

Continuando, vamos ver o describe, que é a mesma coisa.

# Estatísticas descritivas para variáveis numéricas
vendas.describe()

Temos como retorno:

#ID_comprapreco_unitarioquantidadefrete
count6169.0000006169.0000006169.0000006169.000000
mean3085.000000873.2347383.004863119.233832
std1780.9812371852.0643421.420725366.149225
min1.0000002.9000001.0000000.000000
25%1543.00000044.9000002.0000000.320000
50%3085.00000093.9000003.0000007.550000
75%4627.000000221.9000004.00000029.240000
max6169.0000008000.0000005.0000004521.540000

O id_compra é redundante, pois serve apenas como um número de identificação. Portanto, vamos considerar as variáveis preço, quantidade e frete, incluindo estatísticas como mínimo, máximo, quartis, mediana e média. É importante examinar esses números com atenção para identificar possíveis insights interessantes.

# Contagem de vendas por categoria de produto

Temos também a parte de contagem das vendas que ele faz.

# Contagem de vendas por categoria de produto
vendas['categoria'].value_counts()

Ao rodarmos, obtemos:

##
Alimentos e bebida1495
Beleza e cuidados pessoais1062
Casa e limpeza1041
Eletrodomésticos665
Eletrônicos580
Papelaria e escritório551
Ferramentas e construção474
Livros301
Name:categoria, dtype: int64

Ele vai contar por categoria e, em seguida, realizará um value_counts sobre ela. Aqui podemos observar que ele categorizou de forma abrangente, indo desde alimentos até livros, e então contou a quantidade de vendas de cada categoria, não o valor das vendas.

Preço médio unitário dos produtos

Aqui embaixo ele pegou o preco_unitario dos produtos.

# Preço médio unitário dos produtos
vendas['preco_unitario'].mean()

Temos como retorno:

873.2347382071648

Ele calculou uma média do preço unitário dos produtos, determinando-a a partir dos preços mais baixos até os mais altos.

Quantidade total de produtos vendidos

Além disso, determinou a quantidade total de produtos vendidos, contabilizando todas as vendas, independentemente do número de itens vendidos por transação, totalizando 18.500 unidades.

# Quantidade total de produtos vendidos
vendas['quantidade'].sum()

18537

Valor total do frete arrecadado

Também realizou o cálculo do valor total do frete arrecadado, resultando em um faturamento de 735.553,51 reais apenas com as taxas de entrega.

# Valor total do frete arrecadado
vendas['frete'].sum()

735553.51

Métodos de pagamento utilizados e suas frequências

E também ele fez aqui uma frequência para distribuir os métodos de pagamento.

# Métodos de pagamento utilizados e suas frequências
vendas['metodo_pagamento'].value_counts()
##
Cartão de Crédito2851
PIX2244
Cartão de Crédito547
Boleto527
Namemetodo_pagamento, dtype: int64

Podemos observar que o cartão de crédito é o método de pagamento mais utilizado pelos clientes, seguido pelo PIX, cartão de débito e boleto.

Conclusão e Próximos Passos

Já exploramos os dados e entendemos um pouco mais sobre eles, utilizando a IA do ChatGPT.

Agora, o nosso próximo passo é unir as tabelas e pensar em quais visuais podemos utilizar para gerar os gráficos que vão ser utilizados no relatório da Zoop. Nos vemos no próximo vídeo.

Sobre o curso IA aplicada a Data Science: utilizando IA na construção de visualização de dados

O curso IA aplicada a Data Science: utilizando IA na construção de visualização de dados possui 162 minutos de vídeos, em um total de 58 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas