ValueError: no se puede convertir NaN flotante a entero en Python
-
Use el método
fillna()para corregirValueError: no se puede convertir flotante NaN a enteroen Python -
Use el método
dropna()para corregirValueError: no se puede convertir flotante NaN a enteroen Python -
Utilice la función
numpy.nan_to_num()para corregirValueError: no se puede convertir NaN flotante en enteroen Python
El ValueError se genera cuando proporciona un argumento válido a una función, pero es un valor no válido. Por ejemplo, obtendrá el ValueError cuando proporcione un número negativo a la función sqrt() de un módulo matemático.
En Python, NaN significa No es un número, lo que indica las entradas que faltan en el conjunto de datos. Es un valor flotante especial que no se puede convertir a otros tipos que no sean flotantes.
El ValueError: no se puede convertir flotante NaN a entero ocurre cuando intenta convertir un valor NaN a un tipo entero.
Este tutorial le enseñará a corregir ValueError: no se puede convertir flotante NaN a entero en Python.
Use el método fillna() para corregir ValueError: no se puede convertir flotante NaN a entero en Python
Hemos utilizado el siguiente conjunto de datos para convertir los datos de precios a un tipo entero.

Aquí hay un ejemplo de ValueError: no se puede convertir flotante NaN a entero en Python.
# import pandas
import pandas
# read csv file
df = pandas.read_csv("itemprice.csv")
# convert to an integer type
df["price"] = df["price"].astype(int)
Producción :
pandas.errors.IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer
Hay dos valores NaN en el conjunto de datos. Puede resolver este problema reemplazando los valores NaN con 0.
El método fillna() reemplaza los valores NaN con un valor dado en Python. Comprueba los valores NaN en la columna y los completa con un valor específico.
df_new = df.fillna(0)
print(df_new)
Producción :
items price
0 A 540.0
1 B 370.0
2 C 0.0
3 D 220.0
4 E 0.0
Ahora, convierta el tipo flotante en un tipo entero.
df_new["price"] = df_new["price"].astype(int)
Compruebe el tipo de datos para verificar.
print(df_new["price"].dtype)
Producción :
int32
Use el método dropna() para corregir ValueError: no se puede convertir flotante NaN a entero en Python
El método dropna() elimina todos los valores NULL en el objeto DataFrame.
El siguiente ejemplo elimina las filas que contienen valores NULL en el conjunto de datos.
df_new = df.dropna()
print(df_new)
Producción :
items price
0 A 540.0
1 B 370.0
3 D 220.0
Ahora, puede convertir fácilmente los datos a un tipo entero.
df_new["price"] = df_new["price"].astype(int)
print(df_new["price"].dtype)
Producción :
int32
Utilice la función numpy.nan_to_num() para corregir ValueError: no se puede convertir NaN flotante en entero en Python
También puedes solucionar este error usando la función numpy.nan_to_num(). Cambia el valor NaN a 0.0, que se puede convertir a un número entero.
import numpy
dt = numpy.nan
print(dt)
Producción :
nan
Use la función numpy.nan_to_num() para reemplazar el valor NaN con 0.0.
dt = numpy.nan_to_num(dt)
print(dt)
Producción :
0.0
Luego conviértalo a un tipo entero.
dt = dt.astype(int)
print(dt.dtype)
Producción :
int32
El ValueError: no se puede convertir NaN flotante en entero aparece cuando intenta convertir un valor NaN en un tipo entero. Puede solucionar este problema rellenando los valores NaN con un valor específico o eliminando las filas que contienen valores NaN.
Ahora ya sabe cómo resolver ValueError: no se puede convertir NaN flotante en entero en Python. Esperamos que estas soluciones le resulten útiles.
Artículo relacionado - Python ValueError
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python
