So beheben sie in pandas: typeerror: keine numerischen daten zum plotten


Ein Fehler, der bei der Verwendung von Pandas auftreten kann, ist:

 TypeError : no numeric data to plot

Dieser Fehler tritt auf, wenn Sie versuchen, Werte aus einem Pandas-DataFrame zu zeichnen, aber keine numerischen Werte zum Zeichnen vorhanden sind.

Dieser Fehler tritt normalerweise auf, wenn Sie denken, dass eine bestimmte Spalte im DataFrame numerisch ist, sich aber herausstellt, dass es sich um einen anderen Datentyp handelt.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B'],
                   ' points ': ['5', '7', '7', '9', '12'],
                   ' rebounds ': ['11', '8', '10', '6', '6'],
                   ' blocks ': ['4', '7', '7', '6', '5']})

#view DataFrame
df

	team points rebound blocks
0 A 5 11 4
1 To 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5

Nehmen wir nun an, wir versuchen, ein lineares Diagramm für die drei Variablen zu erstellen, die wir für numerisch halten: Punkte, Sprünge und Blöcke:

 #attempt to create line plot for points, rebounds, and blocks
df[[' points ', ' rebounds ', ' blocks ']]. plot ()

ValueError : no numeric data to plot

Wir erhalten eine Fehlermeldung, da keine dieser Spalten tatsächlich numerisch ist.

So beheben Sie den Fehler

Mit der Funktion dtypes können wir sehen, zu welchem Datentyp jede Spalte in unserem DataFrame gehört:

 #display data type of each column in DataFrame
df. dtypes

team object
points object
rebound object
blocks object
dtype:object

Wir können sehen, dass keine der Spalten im DataFrame numerisch ist.

Wir können die Funktion .astype() verwenden, um bestimmte Spalten in numerische Werte umzuwandeln:

 #convert points, rebounds, and blocks columns to numeric
df[' points ']=df[' points ']. astype (float)
df[' rebounds ']=df[' rebounds ']. astype (float)
df[' blocks ']=df[' blocks ']. astype (float)

Wir können dann die Funktion plot() wiederverwenden:

 #create line plot for points, rebounds, and blocks
df[[' points ', ' rebounds ', ' blocks ']]. plot () 

Wir können erfolgreich ein lineares Diagramm für Punkte, Sprünge und Blöcke erstellen, da jede Variable jetzt numerisch ist.

Wir können dies überprüfen, indem wir erneut die dtypes -Funktion verwenden:

 #display data type of each column in DataFrame
df. dtypes

team object
float64 points
rebounds float64
blocks float64
dtype:object

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert