首页 > 解决方案 > Python If And 语句在 Dataframe 中抛出 KeyError 9

问题描述

我正在尝试过滤 df 列并根据下一个/上一个行值重命名某些行。

在此处输入图像描述

这段代码(虽然没有 AND)对我来说适用于同一个 df 中的其他排序:

for row in df.index:
    if df['col1'][row] == 'b' and df['col1'][row+1] =='name':
        df['col1'][row +1] = 'name1' 
        df['col1'][row +2] = 'name2'

在这里它抛出 KeyError 9,我认为这是因为第 1 行中的 AND 条件。有没有办法解决?

标签: pythonpandasdataframeif-statement

解决方案


这个问题是因为索引超出范围。

在 for 循环中以“row = 8”运行时,数据帧的最后一行,因此“df['col']['row+1'] 无效。

因为 row+1 = 9 超出范围。“KeyError 9”表示在您的数据框中找不到索引“9”。


推荐阅读