Photo by Mailchimp on Unsplash

Como customizar tabelas no Pandas?

Francisco Foz
6 min readApr 12, 2022

Em ciência de dados nós importamos, limpamos, modelamos, analisamos e… apresentamos dados. Não apenas em gráficos mas em formato de tabelas também.

Apresentar tabelas com cores e layouts específicos para o usuário final é muito importante para que a comunicação fique clara.

Você pode gerar tabelas em excel (.xlsx) como essa:

Ou mesmo em HTML como essa:

E tudo isso com o Pandas!

Nesse texto irei trazer como você pode customizar seus dados do DataFrame em tabelas personalizadas.

Bora lá?!

Sumário:

Dados iniciais

Highlight_min e highlight_max

Textos com cores

Fundos coloridos

Exportando em excel

Usando o HTML e o CSS

Considerações finais

Dados iniciais

Como exemplo utilizei este conjunto de dados do KaggleAmazon Top 50 Bestselling Books 2009–2019” que é referente ao 50 livros mais vendidos por ano na Amazon entre 2009 e 2019.

Esta é a estrutura dele:

São vários os recursos de customização, mas trarei apenas alguns para conhecer.

Highlight_min e highlight_max

Bom, verifiquei qual foi a mediana das notas aos livros por tipo de gênero e ano:

Hum… todos com 4, mas aonde estão os menores e maiores números?

Em uma olhada rápida fica difícil de identificar né?

Isso porque são pouquíssimos dados.

Mas uso o style.highlight_min(), passo o eixo e a cor e…

Destacado os dois menores valores por gênero!

Para os maiores, uso o highlight_max()

Pronto!

Textos com cores

Vamos analisar agora como foram os preços por gênero e ano?

Para esse vou usar o text_gradient(), com uma paleta de cor variando do vermelho ao verde e o eixo novamente pelas linhas dos gêneros.

Ok, o preço foi caindo através dos anos…

Mas e se eu quisesse comparar os gêneros? Troco o eixo (“axis”):

Aqui, os livros de ficção custam menos do que os de não ficção.

Mas essas cores não estão muito legais… Até mesmo pessoas com daltonismo, talvez teriam problemas com essas cores.

Fica a dica dessa extensão do chrome (Colorblind) , onde você pode simular o daltonismo e verificar as cores possíveis a se utilizar.

Vou pegar o clássico tons de azul, para que possamos verificar:

Melhor né?!

Fundos coloridos

Percebi que os preços caíram muito entre 2009 e 2019.

Vou querer entender quais são os livros e autores de 2009 e 2019 por cada gênero.

Essa é a tabela com os livros de não ficção de 2009:

E como colorir esse fundo gradual ?

Com o .background_gradient():

Ele tem dois parâmetros que podem ser úteis, low e high:

Eles são um número intervalar entre 0 e 1 que você ajusta de acordo com a necessidade.

Servem para comprimir a quantidade de cores em uma ponta ou na outra, por exemplo:

Para os livros de ficção, vou passar uma outra paleta de cores:

Em 2009 a coleção da saga do Crepúsculo tinha o maior preço e curiosamente a A Garota com a Tatuagem de Dragão apenas 2 dólares!

Seria talvez um ebook?

Provavelmente.

Pra finalizar a análise, vamos mostrar o resultado dos de não ficção em 2019.

E os de ficção:

Mas você percebeu dois detalhes?

A nota está com um monte de casas decimais e o preço… é em dólar americano? Em reais? Em euros? No que?

Apenas utilizei o .format() e passei os parâmetros do formato.

Para as notas dos usuários, passei um segundo.format()

Exportando em excel

Agora, você deseja apresentar esses dados em excel para enviar a sua direção.

Como?

Utiliza o Style.to_excel()

Usei a barra (‘\’) para poder encadear as funções.

Fácil né?

Usando o HTML e o CSS

Agora e se você precisar gerar uma tabela em HTML?

Existe o style.to_html(), no qual irá gerar uma tabela em HTML com os parâmetros que você definir.

Além disso, ainda pode configurar os parâmetros do CSS!

Você utiliza o .set_table_styles() e passa uma lista com um dicionário, com os atributos dentro de tuplas com informações do cabeçalho (th) e do corpo (td) da tabela em CSS.

Depois apenas passa ela como variável:

E pronto!

Tabela customizada.

Claro… não sou especialista no design da tabela. Ela provavelmente ficaria muuuuuito melhor.

Mas já posso auxiliar e conversar com pessoas do front se precisar realizar esse trabalho.

O que não me impede também de que com o passar do tempo, estude mais do front e consiga aplicar melhor os conhecimentos aqui.

Isso me lembra muito a questão do Dev em T no qual a Alura fala bastante.

É você se especializar em uma área, mas conseguir navegar pelas outras com mais facilidade.

Acho incrível o poder que isso te dá!

Considerações finais

Personalizar tabelas com Pandas agora ficou mais fácil né?!

Bom estava estudando isso e me deparei esse texto (em inglês):

Style your Pandas DataFrame and Make it Stunning

e com esse vídeo em que a Kizzi Terra do Programação Dinâmica explica exatamente isso:

Achei incrível e quis trazer aqui.

Encontrei mais algumas funcionalidades dentro do Style do Pandas usando Latex e trarei mais dicas logo mais.

Agora me diga, você já quis customizar tabelas e não sabia que o Pandas te auxilia nisso? Compartilhe nos comentários.

Se você chegou até aqui e curtiu, dê palmas, compartilhe e se inscreva para me acompanhar.

Ainda há muito a se explorar…

--

--

Francisco Foz
Francisco Foz

Written by Francisco Foz

Bibliotecário | Analista de dados | Disseminando informações para produzir conhecimento.

No responses yet