Olá! Meu nome é Mirla Costa vou te acompanhar neste curso de Data Visualization: estilização de tabelas com Python!
Autodescrição: Sou uma mulher branca, de cabelos cacheados e pretos na altura dos ombros. Uso um óculos de grau de armação redonda e visto uma camisa bege com estampas de folhas. Ao meu fundo, há uma parede lisa arroxeada.
Esse curso é feito para pessoas que desejam aprender a construir visualizações mais interativas, interessantes e até mais bonitas do que aquelas tabelas padrão, tudo isso utilizando Pandas.
Nós vamos construir uma visualização para contribuir em diversos setores dentro de uma grande loja de departamentos online. Para fazer isso, aprenderemos a construir um objeto de estilização, destacar elementos e adicionar visualizações em uma tabela. Além disso, aprenderemos também a realizar diversas interações e construir tabelas formais com Pandas.
Junto a isso, vamos pensar em como mostrar esses dados da melhor forma possível para os departamentos. Então, ao final do curso, saberemos como fazer tabelas chamativas, com uma boa apresentação, além de nos aprofundar nos conteúdos de Data Visualization.
Para ter um bom aproveitamento desse curso, é recomendado que já tenha conhecimento em Python e na biblioteca Pandas. Vamos lá?
Nós trabalhamos com dados em uma grande loja de departamentos online e nos foi repassado um conjunto de dados referente a um relatório de vendas dos anos de 2016 a 2019. A partir deste relatório, temos o objetivo de criar visualizações para vários setores dessa loja de departamento a fim de conseguirmos transmitir essas informações.
Para construirmos essas visualizações e passar essas informações, primeiro precisamos preparar nossos dados. Então, vamos começar!
Nas atividades, temos um notebook para download. Baixe-o e faça seu upload no Google Colab.
Com o notebook aberto no Google Colab, pronto para ser utilizado, a primeira seção que vemos é a de coleta e preparação de dados. Note que nossa primeira linha é um pip install
.
Para fazer esse projeto, utilizaremos a versão 2.0 do Pandas, uma das versões mais estáveis e atuais. Vamos fazer o download dessa versão agora em nosso notebook usando o comando:
!pip instal pandas==2.0.0
Vamos executar essa célula teclando "Shift + Enter" e aguardar o download ser concluído.
Finalizado o download, faremos o upload do nosso relatório, onde constam os dados com os quais trabalharemos. Para isso, clicamos em "Arquivos", último ícone do menu lateral, e vamos em "Fazer upload para o armazenamento da sessão". Em seguida, selecionamos o arquivo "relatorio_vendas.csv", que foi disponibilizado para que você fizesse o download.
Após o upload ser concluído, clicamos nos três pontinhos do lado direito do nome do arquivo e em "Copiar caminho". Fazendo isso, teremos o caminho salvo na nossa área de transferência. Podemos, então, fechar a aba de arquivos e minimizar a visualização.
Na célula seguinte, faremos a importação do Pandas e leremos esse arquivo:
import pandas as pd
df = pd.read_csv('/content/relatorio_vendas.csv')
df
Neste comando, apelidamos o Pandas como "pd" e lemos o nosso arquivo CSV o transformando em um dataframe. Note que passamos o caminho do arquivo entre parênteses. Por fim, chamamos o dataframe para visualizá-lo.
Visualização dos primeiros 5 registros
# | data_pedido | modo_envio | nome_cliente | segmento_cliente | cidade | estado | regiao | departamento | tipo_produto | vendas | quantidade | lucro |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2018-11-09 | Econômica | Thiago Silveira | B2C | Ribeirão Preto | São Paulo | Sudeste | Materiais de construção | encanamentos | 890.66 | 2 | 142.51 |
1 | 2018-11-09 | Econômica | Thiago Silveira | B2C | Ribeirão Preto | São Paulo | Sudeste | Materiais de construção | ferramentas | 2488.60 | 3 | 746.58 |
2 | 2018-06-13 | Econômica | Giovanna Lima | B2B | Rio de Janeiro | Rio de Janeiro | Sudeste | Jardinagem e paisagismo | sementes | 49.71 | 2 | 23.36 |
3 | 2017-10-12 | Entrega padrão | Ana Júlia da Cruz | B2C | Foz do Iguaçu | Paraná | Sul | Materiais de construção | materiais de revestimento | 3255.76 | 5 | -1302.31 |
4 | 2017-10-12 | Entrega padrão | Ana Júlia da Cruz | B2C | Foz do Iguaçu | Paraná | Sul | Jardinagem e paisagismo | vasos | 76.05 | 2 | 8.56 |
Agora, temos o conjunto de dados desse relatório de vendas, com várias colunas e dados. Lembrando que esse conjunto de dados já está limpo, então não precisamos nos preocupar com possíveis dados nulos. Só precisamos verificar se todos os dados presentes nesse estão corretamente tipados. Por exemplo, a coluna "vendas" deve ter valores do tipo float.
Além disso, o significado de cada uma dessas colunas está presente nas atividades deste curso. Se você quer saber o que representa cada conjunto de dados de cada coluna desse dataframe, confira as atividades.
Na célula seguinte, vamos verificar os tipos de dados de cada coluna desse dataframe. Para fazer isso, nós utilizamos o .info()
. Então, vamos colocar df.info()
e pressionar "Shift + Enter" para executar a célula.
df.info()
As colunas que precisam ser numéricas, "vendas", "quantidade" e "lucro", são de fato numéricas, tipadas como float, int e float, respectivamente. No entanto, a coluna "data_pedido", possui dados de datas, mas está tipada como object e não como date time.
Precisamos transformar a coluna "data_pedido" para o tipo date time. Para isso, na célula seguinte, chamamos o dataframe df
passando o nome da coluna em questão entre colchetes e aspas simples ['data_pedido']
. Depois igualamos a pd.to_datetime()
, passando o dataframe com a coluna em questão, df['data_pedido']
, a fim de convertâ-la para date time.
df['data_pedido'] = pd.to_datetime(df['data_pedido'])
Teclamos "Shift + Enter", aguardamos um pouco e solicitamos a visualização dos dados novamente.
df.info()
Note que, agora, a coluna "data_pedido" está tipada como datetime. Nossos dados estão prontos e preparados para construir as nossas visualizações.
Para entregar a informação para os outros setores, vamos separar esses projetos de visualização por missões. Nessa aula, vamos dar início à nossa primeira missão: a do time de vendas.
O time de vendas precisa saber quais os 10 maiores clientes por total em vendas, pois isso permitirá que a equipe trace planos e projetos para manter esses clientes comprando em nossa loja. Sendo assim, um ranking com os top 10 maiores clientes por venda pode satisfazer essa necessidade. Façamos isso!
No Colab, vamos para seção "Missão 1: Time de vendas", na qual construiremos a primeira parte desse projeto de visualização que consiste na estruturação dos nossos dados. Não podemos enviar um dataframe completo para o time de vendas e esperar que eles entendam. O ideal é estruturar um dataframe adjacente ao dataframe principal, que possua o conjunto de dados responsável por uma informação específica. Pensando nisso, vamos construir uma tabela com o ranking dos nossos clientes.
Para podermos fazer esse agrupamento dos nomes de clientes por vendas, podemos utilizar .groupby
. Então, vamos gerar um novo dataframe chamado df_cliente_vendas
que será igual a df.groupby()
.
Nós vamos agrupar a quantidade de vendas pela coluna de nomes de clientes. Ou seja, somaremos os valores de venda para cada ocorrência de determinado cliente, assim, poderemos verificar qual é o maior cliente. A coluna que será agrupada é nome_cliente
, então a passamos para .groupby()
entre colchetes e aspas simples.
df_clientes_vendas = df.groupby(['nome_cliente'])
Em seguida, fora do groupby()
, colocamos colchetes novamente e incluímos vendas
entre aspas simples. Para fazer a soma, usamos .sum()
.
df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum()
Agora, podemos ranquear esses dados com o método .nlargest()
.
df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum().nlargest()
Em .nlargest()
, especificamos quantas amostras serão ranqueadas. No caso, 10, que corresponde aos 10 maiores clientes.
df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum().nlargest()
Para finalizar, colocaremos .copy()
para não termos nenhum erro nas próximas atualizações do Pandas.
df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum().nlargest().copy()
Para tornar isso em um dataframe, usaremos reset_index()
e resetaremos os index que devem constar no dataframe.
df_cliente_vendas = df_cliente_vendas.reset_index()
Em seguida, chamamos df_cliente_vendas
para visualizá-lo.
Nossa célula de comando ficará assim:
df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum().nlargest().copy()
df_cliente_vendas = df_cliente_vendas.reset_index()
df_cliente_vendas
Vamos teclar "Shift + Enter" para executar.
Visualização dos 5 primeiros registros das 2 colunas.
# | nome_cliente | vendas |
---|---|---|
0 | Maria Luiza Almeida | 64777.54 |
1 | Ana Julia Pinto | 51396.95 |
2 | Ryan Farias | 48178.94 |
3 | Heitor da Mata | 47610.85 |
4 | Maria Clara Gonçalves | 46946.42 |
Note que temos uma tabela que ranquea os nossos maiores clientes pelo total de vendas.
Podemos fazer algumas alterações como, por exemplo, alterar o nome da coluna "nome_cliente" para "Clientes" e "vendas" para "Vendas", utilizando a primeira letra em maiúsculo. Além disso, um ranking normalmente não começa em 0, mas em 1. Então, podemos ajustar esses index para que fiquem da forma que precisamos.
Na célula seguinte, ajustaremos o nome das nossas colunas. Para isso, chamamos o dataframe df_cliente_vendas.columns
e armazenamos uma lista com os nomes das duas colunas.
df_cliente_vendas.columns = ['Clientes', 'Vendas']
Em seguida, criaremos uma nova coluna que será a dos números de ranking. Nós a chamaremos de "Ranque" e atribuiremos a ela os números do index do dataframe somados a 1.
df_cliente_vendas['Ranque'] = df_cliente_vendas.index + 1
Agora nós temos a coluna "Ranque", podemos transformá-la em índice. Para fazer isso, utilizamos o método set_index()
.
df_cliente_vendas.set_index('Ranque', inplace=True)
Por fim, podemos fazer uma nova do dataframe.
df_cliente_vendas
Nossa célula de comando ficará assim:
df_cliente_vendas.columns = ['Clientes', 'Vendas']
df_cliente_vendas['Ranque'] = df_cliente_vendas.index + 1
df_cliente_vendas.set_index('Ranque', inplace=True)
df_cliente_vendas
Visualização dos 5 primeiros registros das 2 colunas.
Ranque | Clientes | Vendas |
---|---|---|
1 | Maria Luiza Almeida | 64777.54 |
2 | Ana Julia Pinto | 51396.95 |
3 | Ryan Farias | 48178.94 |
4 | Heitor da Mata | 47610.85 |
5 | Maria Clara Gonçalves | 46946.42 |
Temos o nosso dataframe pronto para ser transformado em uma visualização para a equipe de vendas. É o que faremos a seguir!
O curso Data Visualization: estilização de tabelas com Python possui 126 minutos de vídeos, em um total de 50 atividades. Gostou? Conheça nossos outros cursos de Data Visualization em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.