es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué devuelve un error de división entre cero en lugar de “inf” en el marco de datos?

Estoy recibiendo un error de división por cero de tipo float cuando espero ‘inf’ donde el divisor es 0.

Aquí está el df:

https://i.stack.imgur.com/gsgtEm.png

df[‘percent’] = df[‘value1’] / df[‘value2’]

ZeroDivisionError: float division by zero

Es absolutamente aceptable que df[‘percent’] muestre el valor de infinito, pero en su lugar tengo este error y el código no se puede ejecutar.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error que está recibiendo indica que está intentando realizar una división de flotación por cero. Esto ocurre cuando el divisor en la operación de división (en este caso, df['value2']) es cero.

    Para evitar este error y que df['percent'] lea infinito en su lugar, puede usar la biblioteca numpy, que proporciona una función llamada numpy.divide(). Esta función maneja automáticamente la división por cero devolviendo inf cuando el divisor es cero.

    Aquí hay un ejemplo de cómo puede usar numpy.divide() en su código:

    import numpy as np
    
    df['percent'] = np.divide(df['value1'], df['value2'])
    

    Usar numpy.divide() asegurará que su código se ejecute sin el ZeroDivisionError, y df['percent'] tendrá el valor de infinito donde el divisor es cero.

Comments are closed.