Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Dividindo por 0

Oi gente

Eu to com dificuldade para lidar com uma variável que eu criei, porque em algumas linhas ta rolando divisão de 0 e em outras ta rolando divisão por 0.

O código é esse:

df['C'] = df['A'] / df['B']

Por conta de alguns valores 0 nas variáveis A e B eu tenho resultados estranhos. E eu não posso retirar essas linhas com valor 0 porque são importantes. Alguma sugestão?

11 respostas

Olá Felipe, tudo certinho??

Tenho algumas sugestões para tratar esses dados nulos e então você conseguir o resultado buscado.

Dá uma olhada aqui nesse NOTE que conta com 5 soluções para este problema

  • Solução 1 - Preenchendo dados nulos com valor médio das vendas
  • Solução 2 - Preenchendo com um valor específico
  • Solução 3 - Removendo dados nulos do DataFrame
  • Solução 4 - Preenchendo com o valor anterior ou posteior
  • Solução 5 - Interpolando dados nulos com um com o valor médio

Espero que te ajude e qualquer dúvida é só retornar aqui!

Bons estudos =)

Oi Victor,

na verdade não me ajudou cara. Porque meu problema não é ter os dados nulos. Eu substitui NAN por 0 e eu preciso que fique assim.

Me problema é que a operação de divisão (Variável C) da números infinitos. Não tem como eu mexer só nessa variável e deixar as outras duas do mesmo jeito ?

Olá Felipe, tudo bem?

Qualquer número divido por zero é zero, não seria o caso de chamar uma função auxiliar onde "Se o divisor for igual a zero, o resultado é zero. Senão executa a divisão".

(Sou novato então posso estar errado... De qualquer forma eu pensaria em algo parecido)

solução!

Ahhh Felipe então eu acho que seria algo assim que está buscando?

Imgur

É que não consegui compreender muito bem a sua dúvida, peço desculpa. Vamos ver se agora tá dentro do que precisa.

Fico no aguardo!

Oi William,

O problema é que algumas divisões são 0 por outro número inteiro. Dai o resultado deu "inf" (Ex.: 0/3 = inf)

Sobre a função auxiliar, eu não sei se eu sei fazer isso. Como seria?? É aquela função "def" ?

Isso Victor !!!

Acho que eu não consegui ser claro antes. Mas a minha questão é exatamente essa!

Obrigado pela ajuda.

Você acha que a melhor solução é fazer a substituição caso a caso (com o iloc)?

Opa! Aí sim!

Eu faria, faz sentido para mim e para você?

Faz também!! Só queria confirmar se não havia um jeito que fazia tudo de uma vez (Preguiça que chama rs)

Muito obrigado Victor e William

Tenta assim usando numpy.

Imgur

Victor,

Essa ultima sugestão, através do Numpy, foi perfeita. Muito obrigado <3

Aeee Felipão o/

Bons estudos!