Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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!