Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
KeyError: "['Label'] not found in axis"
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine Spalte aus …
Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
ValueError: cannot convert float NaN to integer
Dieser Fehler tritt auf, wenn Sie versuchen, eine Spalte in einem Pandas DataFrame von einem Gleitkommawert in eine ganze Zahl zu konvertieren, die Spalte jedoch NaN-Werte enthält.
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
Angenommen, wir erstellen den folgenden Pandas DataFrame:
import pandas as pd
import numpy as np
#Dataframe erstellen
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, np.nan, 10, 6, 5, np.nan, 9, 12]})
#Dataframe anzeigen
df
points assists rebounds
0 25 5 11
1 12 7 NaN
2 15 7 10
3 14 9 6
4 19 12 5
5 23 9 NaN
6 25 9 9
7 29 4 12
Derzeit ist die Spalte „Rebounds“ vom Datentyp „Float“.
#Datentyp der Spalte „Rebounds“ drucken
df['rebounds'].dtype
dtype('float64')
Angenommen, wir versuchen, die Spalte „Rebounds“ von einem Gleitkommawert in eine Ganzzahl umzuwandeln:
# Versuch, die Spalte „Rebounds“ von Float in Integer umzuwandeln
df['rebounds'] = df['rebounds'].astype(int)
ValueError: cannot convert float NaN to integer
Wir erhalten einen ValueError, da die NaN-Werte in der Spalte „Rebounds“ nicht in Ganzzahlwerte konvertiert werden können.
Die Möglichkeit, diesen Fehler zu beheben, besteht darin, sich mit den NaN-Werten zu befassen, bevor versucht wird, die Spalte von einem Gleitkommawert in eine Ganzzahl umzuwandeln.
Wir können den folgenden Code verwenden, um zunächst die Zeilen zu identifizieren, die NaN-Werte enthalten:
# Zeilen in DataFrame drucken, die NaN in der Spalte „Rebounds“ enthalten
print(df[df['rebounds'].isnull()])
points assists rebounds
1 12 7 NaN
5 23 9 NaN
Wir können dann entweder die Zeilen mit NaN-Werten löschen oder die NaN-Werte durch einen anderen Wert ersetzen, bevor wir die Spalte von einem Gleitkommawert in eine Ganzzahl konvertieren:
Methode 1: Zeilen mit NaN-Werten löschen
#alle Zeilen mit NaN-Werten löschen
df = df.dropna()
#Spalte „Rebounds“ von Float in Integer umwandeln
df['rebounds'] = df['rebounds'].astype(int)
#aktualisierten DataFrame anzeigen
df
points assists rebounds
0 25 5 11
2 15 7 10
3 14 9 6
4 19 12 5
6 25 9 9
7 29 4 12
#Klasse der Spalte „Rebounds“ anzeigen
df['rebounds'].dtype
dtype('int64')
Methode 2: NaN-Werte ersetzen
#ersetze alle NaN-Werte durch Nullen
df['rebounds'] = df['rebounds'].fillna(0)
#Spalte „Rebounds“ von Float in Integer umwandeln
df['rebounds'] = df['rebounds'].astype(int)
#aktualisierten DataFrame anzeigen
df
points assists rebounds
0 25 5 11
1 12 7 0
2 15 7 10
3 14 9 6
4 19 12 5
5 23 9 0
6 25 9 9
7 29 4 12
#Klasse der Spalte „Rebounds“ anzeigen
df['rebounds'].dtype
dtype('int64')
Beachten Sie, dass wir mit beiden Methoden den ValueError vermeiden und die Float-Spalte erfolgreich in eine Integer-Spalte konvertieren können.
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
Problembehebung: Spalten überlappen, aber es wurde kein Suffix angegeben
Problembehebung: Das Objekt „numpy.ndarray“ hat kein Attribut „append“
Lösung: Wenn Sie alle Skalarwerte verwenden, müssen Sie einen Index übergeben
Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
KeyError: "['Label'] not found in axis"
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine Spalte aus …
Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
ValueError: columns overlap but no suffix specified: Index(['column'], dtype='object')
Dieser Fehler tritt auf, wenn Sie …