如何修复 pandas 中的 keyerror(带有示例)
使用 pandas 时可能遇到的错误是:
KeyError : 'column_name'
当您尝试访问 pandas DataFrame 中不存在的列时,会发生此错误。
通常,当您简单地拼错列名称或在列名称之前或之后意外包含空格时,就会发生此错误。
以下示例展示了如何在实践中纠正此错误。
如何重现错误
假设我们创建以下 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”属性
如何修复:如果使用所有标量值,则需要传递索引