如何在 pandas 中修复:keyerror:“在轴中找不到['标签']”


使用 pandas 时可能遇到的错误是:

 KeyError : "['Label'] not found in axis"

当您尝试从 pandas DataFrame 中删除列并忘记指定axis=1时,通常会发生此错误。

默认情况下, axis 参数设置为0 ,它指的是线。您需要指定axis=1来告诉 pandas 查看列。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

        team assists points
0 to 5 11
1 to 7 8
2 to 7 10
3 to 9 6
4 B 12 6
5 B 9 5
6 B 9 9
7 B 4 12

现在假设我们尝试从 DataFrame 中删除“points”列:

 #attempt to drop "points" column
df_new = df. drop (' points ')

KeyError : "['points'] not found in axis"

默认情况下, drop()函数使用axis=0 ,它引用 DataFrame 的行。

由于没有名为“points”的行名称,因此我们收到错误。

如何修复错误

为了告诉 pandas 查看列,我们需要指定axis=1 ,如下所示:

 #drop "points" column
df_new = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

	team assists
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4

请注意,“点”列已从 DataFrame 中删除,我们没有收到任何错误。

这是因为我们使用了axis=1 ,所以 pandas 知道在决定从 DataFrame 中删除哪些值时要查看“点”的列名称。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

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