2
respostas

Desafio: hora da prática

qtd_desconto = pd.DataFrame(df['tipo_desconto'].value_counts())
qtd_desconto.columns = ['Nº Pedidos']
qtd_desconto

qtd_desconto.index.name = 'Tipo de Desconto'
qtd_desconto

import numpy as np

porcentagem = qtd_desconto['Nº Pedidos'].to_numpy()
porcentagem = 100 * porcentagem / porcentagem.sum()
porcentagem

#criando nova coluna com o array 
qtd_desconto['Porcentagem'] = porcentagem
qtd_desconto

style_qtd_desconto = qtd_desconto.style
style_qtd_desconto

cabecalho = {
    'selector':'th', 
    'props': 'font-family: Helvetica; color: #dddd55; background-color: #34495E; text-align: center;'
}

celulas = {
    'selector':'td', 
    'props': 'font-family: Helvetica; color: white; background-color: #34495E; text-align: center;'
}

style_qtd_desconto.set_table_styles([cabecalho, celulas])

style_qtd_desconto.format({'Porcentagem':'{:.2f}%'})\
             .bar(subset='Porcentagem', vmin=0, vmax=160.0, color='#9CD33B')
style_qtd_desconto

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Oi, Adriely! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você organizou bem o processo ao transformar os dados em DataFrame, calcular a porcentagem e aplicar a estilização com style, deixando a tabela mais clara e visualmente consistente, principalmente no uso das barras para reforçar a distribuição.

Continue assim! ✨

Uma dica interessante para o futuro e usar o parâmetro normalize=True no método value_counts(), que já retorna os valores proporcionais, evitando cálculos manuais. Veja este exemplo:


qtd = df['tipo_desconto'].value_counts(normalize=True) * 100
tabela = qtd.to_frame(name='Porcentagem')

Esse código calcula automaticamente a porcentagem de cada categoria e cria uma tabela pronta para ser estilizada.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Para saber mais:

Sugestão de conteúdo:

DOCUMENTAÇÃO
Series.value_counts
Alura Conte com o apoio da comunidade Alura na sua jornada. Abracos e bons estudos!

Adaptei a dica no exercicio e realmente ficou menos manual

qtd_desconto = pd.DataFrame(df['tipo_desconto'].value_counts().to_frame(name='Nº Pedidos'))
qtd_desconto

qtd_desconto.index.name = 'Tipo de Desconto'
qtd_desconto

qtd_desconto['Porcentagem'] = (
    df['tipo_desconto']
      .value_counts(normalize=True) * 100
)
qtd_desconto

... e a estilização