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

Pandas中re.findall(re.IGNORECASE)无法匹配大写关键词求助

解决DataFrame文本列不区分大小写的关键词精确匹配问题

问题原因

你的代码失效是因为:re.findall提取的单词会保留原文本的大小写(比如原文本是HOAX,提取结果就是HOAX),但关键词列表里都是小写,直接用i in keywords自然匹配不上。

两种修复方案

方案一:统一转小写后匹配

把提取出的单词转为小写,再和关键词列表对比:

import re
import pandas as pd

keywords = ['fake', 'hoax', 'misleading']
df2 = df1[df1.text.apply(lambda x: any(i.lower() in keywords for i in re.findall('\w+', x)))]

方案二:正则直接匹配(更高效)

构建不区分大小写的正则模式,同时用\b确保匹配完整单词(避免误匹配hoaxer这类包含关键词的长单词):

import re
import pandas as pd

keywords = ['fake', 'hoax', 'misleading']
# 拼接正则规则:匹配任意关键词,单词边界,不区分大小写
pattern = re.compile(r'\b(' + '|'.join(keywords) + r')\b', flags=re.IGNORECASE)
df2 = df1[df1.text.str.contains(pattern)]

方案对比

  • 方案一逻辑简单直观,适合快速修改;
  • 方案二利用Pandas内置的str.contains,执行效率更高,且能避免部分匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:17:12