Jump to content

Estilização de um DataFrame


Thanael

Postagens Recomendadas

  • Pessoal da TecnoSpeed

Olá pessoal! Hoje vou comentar um pouco com vocês sobre como estilizar um DataFrame e sim, é possível estilizar um DataFrame, para apresentar dados ou até mesmo conseguir visualizar melhor seus dados.
 

Pandas.Style
Essa é a função do pandas onde conseguimos estilizar um DataFrame para facilitar na visualização de seus dados. A partir dela conseguimos especificar diversos atributos a partes do DataFrame como por exemplo, cor de fundo da celula, cor das letras, fonte das letras, tamanhos, negrito e muito mais formatações, para entender um pouco mais sobre o que podemos fazer sugiro que leiam a documentação.
Documentação: Table Visualization

Segue abaixo um exemplo do que pode ser feito.

image.png

Acima temos um DataFrame contendo dados de indicadores de ações, porém com o DataFrame do jeito que está é muito difícil você conseguir visualizar pontos como, "Quais ações tem os melhores indicadores de rentabilidade (ROE, ROIC, M. EBITDA)", ou até mesmo entender quais as empresas que estão mais alavancadas (Dív Líquida/EBITDA), é claro que poderíamos ordenar os dados usando um sort_values( ), porém ainda ficaria complicado para compreendermos os dados caso seu número seja muito grande.

Portanto vamos melhorar a visualização destes dados.

def good_value():
    return 'background-color: #2E924C; font-weight: bold'

def medium_value():
    return 'background-color: #FFFFE5; color:black; opacity: 95%'

def bad_value():
    return 'background-color: red; font-weight: bold'

df_view = (
df_view.style
            # Ajustar as casas decimais
            .format('{:.2f}', na_rep='MISS',subset=[coluna  for coluna in df_view.columns if coluna not in ('acao','Subsetor de Atuação','link')])
            .format('{:.2f}%', na_rep='MISS',subset=['Valorização (12m) %','M. EBITDA %','ROE %','ROIC %','CAGR Receitas 5 anos %','CAGR Lucros 5 anos %'])
            # Indicadores de Preço
            .applymap(lambda v: good_value() if (v > 0) and (v < 20)  else medium_value(), subset=['P/L'])
            .applymap(lambda v: good_value() if (v > 2)  else (medium_value() if v >= 0 and v <= 2 else bad_value()), subset=['P/VP'])
             #Indicadores de Crescimento
            .applymap(lambda v: good_value() if (v < 1) and (v > 0)  else (medium_value() if v >= 2 and v <= 2 else bad_value()),subset=['PEG Ratio'])
            # Rentabilidade
            .background_gradient(cmap='YlGn',subset=['M. EBITDA %','ROE %','ROIC %'])
            # Indicadores de Individamentos
            .applymap(lambda v: good_value() if (v < 1)  else (medium_value() if v >= 1 and v<= 3 else bad_value()), 
                      subset=['Dív. líquida/EBITDA'])
)

Como exemplificado no código acima, podemos setar diversas formatações para o DataFrame, ou seja, as possibilidades são muitas, acima realizei algumas configurações de visualização, como ajustar cores conforme os valores de alguns indicadores, ou até mesmo colorir toda a coluna de acordo com seus valores, indo do menor ao maior. 

Segue abaixo uma imagem de como ficou esse DataFrame depois de estiliza-lo.

image.png

Perceba que agora ficou muito mais fácil de visualizar os dados e identificar as ações que possuem maiores indicadores de rentabilidade, ou até mesmo quais ações estão mais alavancadas. 

Recomendo muito utilizar essas formatações caso tenha que apresentar os dados ou até mesmo caso queira visualizar melhor seus dados.  Você já conhecia essa função de estilizar DataFrames do pandas?

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...