Cara memperbaiki keyerror di pandas (dengan contoh)
Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:
KeyError : 'column_name'
Kesalahan ini terjadi ketika Anda mencoba mengakses kolom pandas DataFrame yang tidak ada.
Biasanya, kesalahan ini terjadi ketika Anda salah mengeja nama kolom atau memasukkan spasi yang tidak disengaja sebelum atau sesudah nama kolom.
Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita membuat DataFrame panda berikut:
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
Selanjutnya, misalkan kita mencoba mencetak nilai pada kolom bernama “titik”:
#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'
Karena tidak ada kolom “titik” di DataFrame kami, kami menerima KeyError .
Bagaimana cara memperbaiki kesalahan tersebut
Cara untuk memperbaiki kesalahan ini adalah dengan memastikan kita mengeja nama kolom dengan benar.
Jika kita tidak yakin dengan semua nama kolom di DataFrame, kita bisa menggunakan sintaks berikut untuk mencetak setiap nama kolom:
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
Kita dapat melihat bahwa ada kolom bernama “poin”, jadi kita dapat memperbaiki kesalahan kita dengan mengeja nama kolom dengan benar:
#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
Kami menghindari kesalahan karena kami mengeja nama kolom dengan benar.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:
Cara Memperbaiki: Kolom tumpang tindih tetapi tidak ada akhiran yang ditentukan
Cara Memperbaiki: Objek ‘numpy.ndarray’ tidak memiliki atribut ‘append’
Cara memperbaiki: Jika Anda menggunakan semua nilai skalar, Anda harus meneruskan indeks