Pandas'ta keyerror nasıl düzeltilir (örnekle)
Pandaları kullanırken karşılaşabileceğiniz bir hata:
KeyError : 'column_name'
Bu hata, mevcut olmayan bir panda DataFrame sütununa erişmeye çalıştığınızda ortaya çıkar.
Genellikle bu hata, bir sütun adını yanlış yazdığınızda veya sütun adının önüne veya arkasına yanlışlıkla boşluk eklediğinizde ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Aşağıdaki pandaları DataFrame oluşturduğumuzu varsayalım:
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
Daha sonra, değerleri “nokta” adı verilen bir sütuna yazdırmaya çalıştığımızı varsayalım:
#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'
DataFrame’imizde “nokta” sütunu olmadığından KeyError alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin yolu sütun adını doğru yazdığımızdan emin olmaktır.
DataFrame’deki tüm sütun adlarından emin değilsek, her sütun adını yazdırmak için aşağıdaki sözdizimini kullanabiliriz:
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
“points” diye bir sütunun olduğunu görüyoruz, dolayısıyla sütun adını doğru yazarak hatamızı düzeltebiliriz:
#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
Sütun adını doğru yazdığımız için hatadan kaçınıyoruz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Nasıl düzeltilir? Sütunlar çakışıyor ancak son ek belirtilmemiş
Nasıl düzeltilir: ‘numpy.ndarray’ nesnesinin ‘append’ özelliği yok
Nasıl düzeltilir? Tüm skaler değerleri kullanıyorsanız bir dizin iletmeniz gerekir