1
resposta

Desafio: finalizando o projeto

compra_cliente = df_cliente.style.format('{:,.2f}')

tabela = {
    'selector': 'td,th:not(.index_name)',
    'props': 'font-weight: normal; font-family: Arial; text-align: center; background-color: white'
}
index = {
    'selector': '.index_name',
    'props': 'font-weight: normal; text-align: right; font-style: italic; color: #696969'
}
compra_cliente.set_table_styles([tabela, index])

compra_cliente.set_table_styles({
    'Total': [
        {'selector': 'th', 'props': 'border-top: 1px solid #181818'},
        {'selector': 'td', 'props': 'border-top: 1px solid #181818'}
    ],
    'B2B': [
        {'selector': 'th', 'props': 'border-top: 1px solid #181818'},
        {'selector': 'td', 'props': 'border-top: 1px solid #181818'}
    ]
}, overwrite=False, axis=1)

cores_total = pd.DataFrame(
    ['true' if v == df_cliente['Total'].max() else 'false' for v in df_cliente['Total']],
    index=df_cliente.index,
    columns=['Total']
)
compra_cliente.set_table_styles({
    'Total': [{'selector': '.true', 'props': 'background-color: #D8D8D8; font-weight: bold'}]
}, overwrite=False, axis=0)
compra_cliente.set_td_classes(cores_total)

compra_cliente = compra_cliente.highlight_max(axis=0, color='#FFD700')
compra_cliente = compra_cliente.highlight_max(axis=1, color='#FFD700')

compra_cliente = compra_cliente.set_table_styles(
    [{'selector': 'tr:nth-child(even)', 'props': 'background-color: #F9F9F9'}],
    overwrite=False
)

compra_cliente = compra_cliente.set_table_styles(
    [{'selector': 'table', 'props': 'border: 2px solid #181818; border-collapse: collapse'}],
    overwrite=False
)

compra_cliente
1 resposta

Olá, John Lenon! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de formatação com pandas Styler para personalizar a exibição da tabela, utilizou muito bem a lógica condicional para destacar os maiores valores e ainda compreendeu a importância da estilização para tornar os dados mais legíveis e profissionais.

Uma dica interessante para o futuro é aplicar estilos condicionais com base em múltiplas colunas, permitindo destacar padrões mais complexos. Assim:

def destaque_linha(row):
    return ['background-color: #E0FFFF' if row['Total'] > 10000 and row['B2B'] > 5000 else '' for _ in row]

compra_cliente = df_cliente.style.apply(destaque_linha, axis=1)

Isso faz com que você consiga identificar rapidamente clientes com alto volume de compras em diferentes segmentos.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!