You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于索引值和位置删除Pandas DataFrame行失败求助

解决Pandas删除指定索引倒数第3行的KeyError问题

问题场景

需要删除DataFrame中索引值为'TMC'且从底部数第3行的记录,当前DataFrame结构如下:

TICKER  ORDER ID              BUY DATE
TMC         1                     1
TMC         1                     1
TMC         1                     1
TMC         2                     1
RVPH        1                     1
TSLA       150           09/18/2022, 18:10:13
TMC         1                     1
TMC         1                     1

尝试执行以下代码时触发错误:

ExcelPD = ExcelPD.drop(ExcelPD.loc['TMC'].iloc[-3])

错误信息(翻译后):

在_drop_axis函数第4340行触发错误:KeyError: [对应行数据] 在轴中未找到

错误原因

ExcelPD.loc['TMC'].iloc[-3]返回的是整行的数据内容,而DataFrame.drop()方法默认接收的是行的索引标签(行的唯一标识),不是行数据本身,因此会因找不到匹配的标签而抛出KeyError。

正确解决方案

方案1:先获取目标行的索引标签再删除

# 提取所有索引为'TMC'的行的索引列表,取倒数第3个索引
target_idx = ExcelPD.loc['TMC'].index[-3]
# 根据索引标签删除行
ExcelPD = ExcelPD.drop(target_idx)

方案2:布尔索引+索引提取的简洁写法

# 直接筛选出索引为'TMC'的行的索引,取倒数第3个后删除
ExcelPD = ExcelPD.drop(ExcelPD[ExcelPD.index == 'TMC'].index[-3])

验证效果

执行后,原DataFrame中索引为'TMC'的倒数第3行(即ORDER ID为2的那条TMC记录)会被成功删除,后续可正常进行数据追加与格式调整。

内容的提问来源于stack exchange,提问作者VV33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:05:20