So beheben Sie KeyError in Pandas (mit Beispiel)

Von Fabian
Kategorie: Python
Lesezeit: 3 Minuten

Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:

KeyError: 'column_name'

Dieser Fehler tritt auf, wenn Sie versuchen, auf eine Spalte in einem Pandas-DataFrame zuzugreifen, die nicht vorhanden ist.

Normalerweise tritt dieser Fehler auf, wenn Sie einen Spaltennamen einfach 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

#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, 8, 10, 6, 6, 5, 9, 12]})

#Dataframe anzeigen
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 dann an, wir versuchen, die Werte in einer Spalte mit dem Namen "Punkt" auszugeben:

# Versuch, Werte in der Spalte „Punkt“ auszugeben
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: 'point'

Da es in unserem DataFrame keine Spalte „point“ gibt, erhalten wir einen KeyError.

So beheben Sie den Fehler

Um diesen Fehler zu beheben, müssen Sie einfach sicherstellen, dass der Spaltenname richtig geschrieben wird.

Wenn wir uns bei allen Spaltennamen im DataFrame nicht sicher sind, können wir die folgende Syntax verwenden, um jeden Spaltennamen auszugeben:

#alle Spaltennamen von DataFrame anzeigen
print(df.columns.tolist())

['points', 'assists', 'rebounds']

Wir können sehen, dass es eine Spalte mit dem Namen „Punkte“ gibt, sodass wir unseren Fehler beheben können, indem wir den Spaltennamen richtig schreiben:

#Werte in Spalte 'Punkte' ausgeben
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, weil wir den Spaltennamen richtig geschrieben haben.

Zusätzliche Ressourcen

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

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: