如何修复 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”属性
如何修复:如果使用所有标量值,则需要传递索引

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注