Skip to content

Wie man Schlüssel-Fehler in Pandas behebt: Ein ausführlicher Leitfaden

Wenn Sie ein Datenanalyst oder ein Datenwissenschaftler sind, sind Ihnen wahrscheinlich die gefürchteten Pandas KeyError bekannt. Dieser Fehler ist zwar häufig, kann aber besonders frustrierend sein. Mit ein wenig Einsicht und den richtigen Werkzeugen können Sie jedoch schnell Diagnosen stellen und diese Probleme beheben. Dieser Artikel bietet einen ausführlichen Leitfaden zur Behebung von Schlüssel-Fehlern in Pandas.

Möchten Sie schnell Datenvisualisierungen in Python erstellen?

PyGWalker ist ein Open Source Python-Projekt, das den Workflow der Datenanalyse und -visualisierung direkt in einer Jupyter Notebook-basierten Umgebung beschleunigen kann.

PyGWalker (opens in a new tab) verwandelt Ihr Pandas Dataframe (oder Polars Dataframe) in eine visuelle Benutzeroberfläche, in der Sie Variablen per Drag-and-Drop ziehen und ablegen können, um Diagramme ganz einfach zu erstellen. Verwenden Sie einfach den folgenden Code:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Sie können PyGWalker jetzt direkt mit diesen Online-Notebooks ausführen:

Und vergessen Sie nicht, uns auf GitHub mit einem ⭐️ zu versehen!

Führen Sie PyGWalker in Kaggle Notebook aus (opens in a new tab)Führen Sie PyGWalker in Google Colab aus (opens in a new tab)Geben Sie PyGWalker ein ⭐️ auf GitHub (opens in a new tab)
Führen Sie PyGWalker in Kaggle Notebook aus (opens in a new tab)Führen Sie PyGWalker in Google Colab aus (opens in a new tab)Führen Sie PyGWalker in Google Colab aus (opens in a new tab)

Verständnis des Pandas KeyError

Bevor wir uns damit befassen, wie man diese Fehler behebt, wollen wir zunächst verstehen, was ein Pandas KeyError ist.

In Pandas ist ein 'Schlüssel' ein anderer Name für einen Spaltennamen in Ihrem DataFrame. Ein KeyError bedeutet, dass Pandas den von Ihnen verwendeten Spaltennamen nicht finden kann. Das kann daran liegen, dass der Name nicht existiert oder dass ein Tippfehler im verwendeten Namen vorliegt. Das Verständnis davon ist der erste Schritt zur Behebung von Schlüssel-Fehlern.

Methode 1: Überprüfen, ob Spaltenbezeichnung vorhanden ist

Der einfachste Weg, um KeyError zu vermeiden, besteht darin sicherzustellen, dass die Spaltenbezeichnung in Ihrem DataFrame vorhanden ist. Dies erfordert ein gutes Verständnis Ihrer Daten und sorgfältiges Codieren.

Hier ist ein einfaches Beispiel dafür, wie Sie auf einen KeyError stoßen könnten:

import pandas as pd
 
data = {'Name': ['John', 'Anna', 'Peter'],
        'Age': [28, 24, 22]}
df = pd.DataFrame(data)
 
print(df['Names'])  # Dies führt zu einem KeyError, da der korrekte Spaltenname 'Name' ist

Wenn Sie sich nicht sicher sind, ob eine Spalte existiert, können Sie den folgenden Code verwenden, um es zu überprüfen:

if 'Names' in df.columns:
    print(df['Names'])
else:
    print("Spalte existiert nicht.")

Methode 2: Die get()-Methode verwenden

Wenn Sie den Fehler abfangen möchten, ohne Ihren Code anzuhalten, können Sie die get()-Funktion verwenden. Diese Funktion liefert die Spalte zurück, falls sie existiert, oder einen Standardwert, falls nicht. So können Sie sie verwenden:

print(df.get('Names', 'Spalte nicht gefunden'))

Erweiterte Fehlerbehandlung: Verwendung von Try und Except

Obwohl die oben genannten Methoden effektiv sind, möchten Sie manchmal einen robusteren Ansatz für die Fehlerbehandlung haben. Hier kommen die try- und except-Blöcke von Python ins Spiel. Sie können versuchen auf eine Spalte zuzugreifen und wenn ein KeyError auftritt, können Sie ihn in Ihrem except-Block behandeln.

Hier ist ein Beispiel:

try:
    print(df['Names'])
except KeyError:
    print('Spalte existiert nicht.')

Aber denken Sie daran, allgemeine try/except-Blöcke zu vermeiden, ohne den Fehlertyp anzugeben. Dies könnte dazu führen, dass unerwartete Fehler durchrutschen.

Fazit

KeyErrors in Pandas sind häufig, aber mit dem richtigen Ansatz können Sie diese Fehler effizient verhindern und beheben. Stellen Sie immer sicher, dass die Spaltenbezeichnungen in Ihrem DataFrame vorhanden sind, verwenden Sie get() für sicheren Zugriff und verwenden Sie try/except für robuste Fehlerbehandlung.