Alura > Cursos de Data Science > Cursos de Data Visualization > Conteúdos de Data Visualization > Primeiras aulas do curso Data Visualization: estilização de tabelas com Python

Data Visualization: estilização de tabelas com Python

Criando visualizações - Apresentação

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á?

Criando visualizações - Preparando os dados

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 das 5 primeiras colunas.

data_pedidomodo_envionome_clientesegmento_clientecidade
02018-11-09EconômicaThiago SilveiraB2CRibeirão Preto
12018-11-09EconômicaThiago SilveiraB2CRibeirão Preto
22018-06-13EconômicaGiovanna LimaB2BRio de Janeiro
32017-10-12Entrega padrãoAna Júlia da CruzB2CFoz do Iguaçu
42017-10-12Entrega padrãoAna Júlia da CruzB2CFoz do Iguaçu

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.

Criando visualizações - Entendendo o problema

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.

Missão 1: 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.

Passo 1: agrupar os nomes

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()

Passo 2: ordenar os dados

Agora, podemos ranquear esses dados com o método .nlargest().

df_cliente_vendas = df.groupby(['nome_cliente'])['vendas'].sum().nlargest()

Passo 3: selecionar apenas os 10 maiores

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()

Passo 4: tornar um dataframe

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_clientevendas
0Maria Luiza Almeida64777.54
1Ana Julia Pinto51396.95
2Ryan Farias48178.94
3Heitor da Mata47610.85
4Maria Clara Gonçalves46946.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.

Ajuste 1: renomeando as colunas

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']

Ajuste 2: redefinindo os valores do index

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.

RanqueClientesVendas
1Maria Luiza Almeida64777.54
2Ana Julia Pinto51396.95
3Ryan Farias48178.94
4Heitor da Mata47610.85
5Maria Clara Gonçalves46946.42

Temos o nosso dataframe pronto para ser transformado em uma visualização para a equipe de vendas. É o que faremos a seguir!

Sobre o curso Data Visualization: estilização de tabelas com Python

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:

Aprenda Data Visualization acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas