Jak naprawić keyerror w pandach (z przykładem)
Błąd, który możesz napotkać podczas korzystania z pand, to:
KeyError : 'column_name'
Ten błąd występuje, gdy próbujesz uzyskać dostęp do kolumny ramki danych pandy, która nie istnieje.
Zazwyczaj ten błąd występuje, gdy po prostu błędnie wpiszesz nazwę kolumny lub dodasz przypadkową spację przed lub po nazwie kolumny.
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że tworzymy następującą ramkę danych pandy:
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
Następnie załóżmy, że próbujemy wydrukować wartości w kolumnie o nazwie „punkt”:
#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'
Ponieważ w naszej ramce danych nie ma kolumny „kropka”, otrzymamy błąd KeyError .
Jak naprawić błąd
Sposobem na naprawienie tego błędu jest po prostu upewnienie się, że nazwa kolumny została poprawnie wpisana.
Jeśli nie jesteśmy pewni nazw wszystkich kolumn w ramce DataFrame, możemy użyć następującej składni, aby wydrukować nazwę każdej kolumny:
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
Widzimy, że istnieje kolumna o nazwie „punkty”, więc możemy poprawić nasz błąd, wpisując poprawnie nazwę kolumny:
#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
Unikamy błędu, ponieważ poprawnie przeliterowaliśmy nazwę kolumny.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić: Kolumny nakładają się, ale nie określono żadnego sufiksu
Jak naprawić: Obiekt „numpy.ndarray” nie ma atrybutu „dołącz”.
Jak naprawić: jeśli używasz wszystkich wartości skalarnych, musisz przekazać indeks