ValueError: Float NaN kann in Python nicht in Integer konvertiert werden

Rohan Timalsina 15 Februar 2024
  1. Verwenden Sie die fillna()-Methode, um ValueError: can convert float NaN to integer in Python zu beheben
  2. Verwenden Sie die Methode dropna(), um ValueError: can convert float NaN to integer in Python zu beheben
  3. Verwenden Sie die Funktion numpy.nan_to_num(), um ValueError: can convert float NaN to integer in Python zu beheben
ValueError: Float NaN kann in Python nicht in Integer konvertiert werden

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.

Datensatz, der zum Konvertieren von Daten in Float-Typen verwendet wird

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.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - Python ValueError

Verwandter Artikel - Python Error