Pandas で keyerror を修正する方法 (例付き)
pandas の使用時に発生する可能性のあるエラーは次のとおりです。
KeyError : 'column_name'
このエラーは、存在しない pandas DataFrame の列にアクセスしようとすると発生します。
通常、このエラーは、単に列名のスペルを間違えた場合、または列名の前後に誤ってスペースが含まれた場合に発生します。
次の例は、このエラーを実際に修正する方法を示しています。
エラーを再現する方法
次のパンダ データフレームを作成するとします。
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
次に、「point」という列の値を出力しようとするとします。
#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 には「ドット」列がないため、 KeyErrorを受け取ります。
エラーを修正する方法
このエラーを修正する方法は、列名のスペルが正しいことを確認するだけです。
DataFrame 内のすべての列名が不明な場合は、次の構文を使用して各列名を出力できます。
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
「points」という列があることがわかります。そのため、列名のスペルを正しく入力することでエラーを修正できます。
#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
列名のスペルが正しいため、エラーは回避されます。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
修正方法: 列が重なっていますが、サフィックスが指定されていません
修正方法: オブジェクト「numpy.ndarray」には「append」属性がありません
修正方法: すべてのスカラー値を使用する場合は、インデックスを渡す必要があります。