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

使用Python DataFrame的drop方法时触发KeyError的原因排查

错误原因及解决办法

你的代码报错的核心问题是错误计算了每行拆分后的元素数量:

  • len(df['subjects'].str.split()) 计算的是整个Series的总行数,不是每行拆分后的元素个数。这个结果是一个单一整数,和3比较后得到的是一个布尔值(比如True或False),用这个布尔值去索引DataFrame时,会因为找不到对应索引标签而触发KeyError。

要获取每行拆分后的元素数量,应该用Pandas的str.len()方法,它会对Series里的每个列表元素计算长度。修正后的代码如下:

# 方法1:用drop删除行
df.drop(df[df['subjects'].str.split().str.len() < 3].index, inplace=True)

# 方法2:更直观的布尔索引筛选(推荐)
df = df[df['subjects'].str.split().str.len() >= 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:40:29