python - 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 条件。有没有办法解决?
解决方案
这个问题是因为索引超出范围。
在 for 循环中以“row = 8”运行时,数据帧的最后一行,因此“df['col']['row+1'] 无效。
因为 row+1 = 9 超出范围。“KeyError 9”表示在您的数据框中找不到索引“9”。
推荐阅读
- javascript - 将脚本附加并执行到 HTML
- .net-core - 使用模式使用 dotnet test 测试多个项目
- javascript - vue,通过 v-model 绑定来自所选选项的两个值
- r - R:如何使用 if 或 for 来获得循环?
- php - 从 TikTok 抓取数据?
- r - 使用 rowsum 或 rowSums 进行子集化
- php - Laravel Cashier 不完整的 3D Secure / SCA 异常处理
- postgresql - 使用部分索引优化查询总是会导致位图堆扫描
- azureservicebus - 如何使系统属性适用于流分析到服务总线主题
- java - 递归计算JAVA中字符串中的字符