ValueError: Float NaN kann in Python nicht in Integer konvertiert werden
-
Verwenden Sie die
fillna()
-Methode, umValueError: can convert float NaN to integer
in Python zu beheben -
Verwenden Sie die Methode
dropna()
, umValueError: can convert float NaN to integer
in Python zu beheben -
Verwenden Sie die Funktion
numpy.nan_to_num()
, umValueError: can convert float NaN to integer
in Python zu beheben
Der ValueError
wird ausgelöst, wenn Sie einer Funktion ein gültiges Argument übergeben, aber es ist ein ungültiger Wert. Beispielsweise erhalten Sie den ValueError
, wenn Sie der sqrt()
-Funktion eines math
-Moduls eine negative Zahl übergeben.
NaN
bedeutet in Python Not a Number
, was auf die fehlenden Einträge im Datensatz hinweist. Es ist ein spezieller Float-Wert, der nicht in andere Typen als Float konvertiert werden kann.
Der ValueError: can convert float NaN to integer
tritt auf, wenn Sie versuchen, einen NaN
-Wert in einen Integer-Typ zu konvertieren.
In diesem Tutorial lernen Sie, wie Sie ValueError: can convert float NaN to integer
in Python beheben.
Verwenden Sie die fillna()
-Methode, um ValueError: can convert float NaN to integer
in Python zu beheben
Wir haben den folgenden Datensatz verwendet, um die Preisdaten in einen Integer-Typ umzuwandeln.
Hier ist ein Beispiel für ValueError: can convert float NaN to integer
in 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)
Ausgang:
pandas.errors.IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer
Es gibt zwei NaN
-Werte im Datensatz. Sie können dieses Problem lösen, indem Sie die NaN
-Werte durch 0
ersetzen.
Die Methode fillna()
ersetzt die NaN
-Werte durch einen gegebenen Wert in Python. Es überprüft die NaN
-Werte in der Spalte und füllt sie mit einem bestimmten Wert.
df_new = df.fillna(0)
print(df_new)
Ausgang:
items price
0 A 540.0
1 B 370.0
2 C 0.0
3 D 220.0
4 E 0.0
Konvertieren Sie nun den Float-Typ in einen Integer-Typ.
df_new["price"] = df_new["price"].astype(int)
Überprüfen Sie den zu überprüfenden Datentyp.
print(df_new["price"].dtype)
Ausgang:
int32
Verwenden Sie die Methode dropna()
, um ValueError: can convert float NaN to integer
in Python zu beheben
Die Methode dropna()
entfernt alle NULL
-Werte im DataFrame-Objekt.
Das folgende Beispiel entfernt die Zeilen, die NULL
-Werte im Datensatz enthalten.
df_new = df.dropna()
print(df_new)
Ausgang:
items price
0 A 540.0
1 B 370.0
3 D 220.0
Jetzt können Sie die Daten einfach in einen Integer-Typ konvertieren.
df_new["price"] = df_new["price"].astype(int)
print(df_new["price"].dtype)
Ausgang:
int32
Verwenden Sie die Funktion numpy.nan_to_num()
, um ValueError: can convert float NaN to integer
in Python zu beheben
Sie können diesen Fehler auch mit der Funktion numpy.nan_to_num()
beheben. Es ändert den NaN
-Wert auf 0.0
, was in eine Ganzzahl umgewandelt werden kann.
import numpy
dt = numpy.nan
print(dt)
Ausgang:
nan
Verwenden Sie die Funktion numpy.nan_to_num()
, um den Wert NaN
durch 0.0
zu ersetzen.
dt = numpy.nan_to_num(dt)
print(dt)
Ausgang:
0.0
Konvertieren Sie es dann in einen Integer-Typ.
dt = dt.astype(int)
print(dt.dtype)
Ausgang:
int32
Der ValueError: can convert float NaN to integer
wird ausgelöst, wenn Sie versuchen, einen NaN
-Wert in einen Integer-Typ zu konvertieren. Sie können dieses Problem beheben, indem Sie die NaN
-Werte mit einem bestimmten Wert füllen oder die Zeilen mit NaN
-Werten löschen.
Jetzt wissen Sie, wie Sie ValueError: can convert float NaN to integer
in Python lösen. Wir hoffen, dass Sie diese Lösungen hilfreich finden.
Verwandter Artikel - Python ValueError
Verwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung