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

使用OpenCV和Python识别文本后匹配pandas DataFrame失败如何解决

问题根因

匹配失败核心原因是Tesseract OCR返回的识别结果默认携带尾部换行符和前后空白字符,直接用于匹配时无法命中DataFrame中干净的目标字符串。
你可以通过打印字符串原始表示的方式验证:在识别文本后添加代码print(repr(txt)),会得到输出'CMA CGM\n',尾部的\n换行符是匹配失败的直接原因。

修复方案

对OCR识别结果做前后空白字符清洗即可,修改识别文本的代码行:

# 原代码
txt = pytesseract.image_to_string(thr)
# 修改为:strip()会去掉字符串前后所有空格、换行、制表符等空白字符
txt = pytesseract.image_to_string(thr).strip()

如果识别结果可能包含特殊符号,可额外增加正则清洗进一步过滤无效字符:

import re
txt = pytesseract.image_to_string(thr)
# 先移除非字母、数字、空格的特殊字符,再清洗前后空白
txt = re.sub(r'[^\w\s]', '', txt).strip()

修改后运行即可得到预期匹配结果:

ID      Col
0   1  CMA CGM
补充优化建议
  • 如果你的DataFrame指定列存在空值,匹配时可以添加na=False参数避免抛出空值异常:
Res = df.loc[df['Col'].str.contains(txt, case=False, na=False)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:45:02