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

如何使用Python pandas查找含指定关键词的文本并从数据集中移除对应行

Pandas 筛选关键词并删除对应行实现方案

你原有代码存在两处问题:

  1. str.match() 为从字符串起始位置匹配,若要匹配字段任意位置包含目标内容的行,需改用str.contains()
  2. drop()方法不能直接传入筛选得到的DataFrame对象,需要传入匹配行的索引值

完整实现代码

1. 构造匹配规则(同步处理空值避免报错)

# 匹配规则可根据需求调整:示例为Aspect列包含product quality、且Sentence列包含指定关键词
# 如果仅需要筛选Review列的关键词,修改对应的列名和匹配规则即可
mask = (
    data['Aspect'].str.contains("product quality", na=False) 
    & data['Sentence'].str.contains("nice|good|great|best", na=False)
)

2. 提取匹配到的完整评论文本行

# 得到所有符合条件的完整行数据
matched_data = data[mask]
# 如果仅需要提取评论文本内容,使用下行即可
# matched_reviews = data.loc[mask, 'Sentence']

3. 从原数据集删除匹配行

两种实现方式二选一即可:

  • 方法1:使用drop方法删除
data.drop(matched_data.index, inplace=True)
  • 方法2:直接取反筛选赋值,写法更简洁
data = data[~mask]

可选参数说明

  • 如需不区分大小写匹配关键词,可在str.contains()中添加case=False参数
  • 如果关键词包含特殊正则符号,可添加regex=False参数关闭正则匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:36:03