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

Pandas DataFrame如何筛选文本列包含#符号的目标行

pandas筛选文本列包含指定字符的行实现方法

问题说明

现有一个包含两列的DataFrame,样例数据如下:

Index  Text

0      READ MY NEW OP-ED: IRREVERSIBLE – Many Effects...
1      #COVID19 is linked to more #diabetes diagnoses...
2      #COVID19: IRREVERSIBLE – Many Effects...
3      READ MY NEW OP-ED: IRREVERSIBLE – Many Effects...
4      Advanced healthcare at your fingertips\nhttps:...

需要仅保留Text列中包含#符号的行,预期输出如下:

Index  Text

1      #COVID19 is linked to more #diabetes diagnoses...
2      #COVID19: IRREVERSIBLE – Many Effects...

问题原因

之前运行代码只返回布尔值序列属于正常现象:Series.str.contains()本身的作用就是逐行判断文本是否匹配规则,返回和原数据等长的布尔型序列。没有得到预期筛选结果的核心问题是:

  • 仅打印了布尔判断结果,没有将该布尔序列作为筛选条件传入DataFrame完成行过滤
  • 多余写了遍历列的循环,该筛选场景不需要逐列遍历操作
  • 注意列名大小写匹配:样例数据列名为大写开头的Text,之前代码里写的小写text如果和实际列名不匹配会直接报错

正确实现代码

直接使用pandas布尔索引规则,将判断条件放入DataFrame的方括号筛选符中即可,不需要写循环:

# na=False用于处理Text列存在空值的场景,避免空值导致运行报错,空值默认判定为不匹配
filtered_df = twt_text[twt_text['Text'].str.contains('#', na=False)]

直接打印filtered_df就能得到预期的筛选结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:48:23