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

使用Python re模块处理文本时出现KeyError: 53报错如何解决?

问题原因

报错KeyError: 53指向re.sub所在行,本质是代码尝试访问texts['title']中索引为53的元素,但该索引不存在,常见触发场景如下:

  • 你的texts是经过过滤、删行操作的Pandas DataFrame,原有索引标签不连续。range(len(texts))生成的是从0开始的连续整数,你用texts['title'][i]取值时Pandas默认按索引标签匹配,无法找到标签为53的行就会抛出键错误。
  • 少数情况下是texts['title']序列本身长度和texts总长度不一致,导致遍历到后半段时索引越界。

解决方法

推荐优先使用无索引遍历的方案,完全规避索引不匹配问题:

corpus_test = []
ps = PorterStemmer()
# 直接遍历title列的所有值,不依赖索引标签
for title in texts['title']:
    review = re.sub('[^a-zA-Z]',' ',title)
    review = review.lower()
    review = review.split()
    review = [ps.stem(word) for word in review if not word in stopwords.words('english')]
    review = ' '.join(review)
    corpus_test.append(review)

如果需要保留索引遍历的写法,二选一即可:

  • 遍历前重置DataFrame索引为连续值:在循环前新增代码texts = texts.reset_index(drop=True)
  • 取值时强制按位置匹配:将texts['title'][i]修改为texts['title'].iloc[i]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:54:03