Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Arredondamento sem a Numpy

Eu resolvi usar a função do próprio pandas .round(), mas notei que ela arredondou alguns números para baixo, digamos assim.

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

1 resposta
solução!

Olá, William! Como vai?

O que você está observando é um comportamento padrão da função .round() do pandas, que segue a regra de arredondamento conhecida como arredondamento para par ou arredondamento do banqueiro. Essa regra arredonda para o número par mais próximo quando o número está exatamente na metade.

Exemplo:

1.5 → 2
2.5 → 2

Se você deseja um arredondamento diferente, você pode usar outras abordagens. Para arredondar sempre para cima, você pode usar o método numpy.ceil(). Para baixo, numpy.floor().

No entanto, como você mencionou que não quer usar o NumPy, você pode fazer isso usando funções do próprio Python. Aqui está como você pode fazer isso:

Arredondar para cima

dados_sem_vazio['cliente.tempo_servico'] = dados_sem_vazio['cliente.tempo_servico'].apply(lambda x: int(x) + 1 if x % 1 != 0 else int(x))

Arredondar para baixo

dados_sem_vazio['cliente.tempo_servico'] = dados_sem_vazio['cliente.tempo_servico'].apply(lambda x: int(x))

Essas funções lambda verificam se o número é inteiro ou não e arredondam de acordo.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado