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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *