Como customizar tabelas no Pandas?
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 Kaggle “Amazon 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…