So beheben sie keyerror in pandas (mit beispiel)
Ein Fehler, der bei der Verwendung von Pandas auftreten kann, ist:
KeyError : 'column_name'
Dieser Fehler tritt auf, wenn Sie versuchen, auf eine Spalte eines Pandas-DataFrames zuzugreifen, die nicht vorhanden ist.
Typischerweise tritt dieser Fehler auf, wenn Sie einfach einen Spaltennamen falsch schreiben oder ein versehentliches Leerzeichen vor oder nach dem Spaltennamen einfügen.
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Angenommen, wir erstellen den folgenden Pandas-DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12
Nehmen wir als nächstes an, wir versuchen, die Werte in einer Spalte namens „Punkt“ auszudrucken:
#attempt to print values in 'point' column print (df[' point ']) KeyError Traceback (most recent call last) /srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3360 try: -> 3361 return self._engine.get_loc(casted_key) 3362 except KeyError as err: /srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() /srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError : 'dot'
Da es in unserem DataFrame keine „Punkt“-Spalte gibt, erhalten wir einen KeyError .
So beheben Sie den Fehler
Um diesen Fehler zu beheben, stellen Sie einfach sicher, dass der Spaltenname richtig geschrieben wird.
Wenn wir uns über alle Spaltennamen im DataFrame nicht sicher sind, können wir die folgende Syntax verwenden, um jeden Spaltennamen auszugeben:
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
Wir können sehen, dass es eine Spalte namens „Punkte“ gibt, sodass wir unseren Fehler korrigieren können, indem wir den Spaltennamen richtig schreiben:
#print values in 'points' column print (df[' points ']) 0 25 1 12 2 15 3 14 4 19 5 23 6 25 7 29 Name: points, dtype: int64
Wir vermeiden einen Fehler, da wir den Spaltennamen richtig geschrieben haben.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
Lösung: Spalten überschneiden sich, es ist jedoch kein Suffix angegeben
Problembehebung: Das Objekt „numpy.ndarray“ verfügt nicht über das Attribut „append“.
Lösung: Wenn Sie alle Skalarwerte verwenden, müssen Sie einen Index übergeben