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

如何用Pandas筛选含指定字符串的行?处理空值报错问题

解决Pandas筛选含指定词汇行的空值/类型报错问题

方法1:统一转换为字符串后处理

先把所有列转成字符串类型,空值(NaN)会被转为字符串'NaN',避免类型不匹配报错:

df[df.astype(str).apply(' '.join, axis=1).str.contains('|'.join(word_list))]

方法2:逐列检查再合并结果

不拼接整行内容,直接对每列单独检查匹配情况,再判断每行是否存在符合条件的列,这种方式更高效,空值会自动返回False不影响判断:

# 生成每列的匹配布尔序列,再取每行是否有至少一个匹配
mask = df.apply(lambda col: col.astype(str).str.contains('|'.join(word_list)), axis=0)
result_df = df[mask.any(axis=1)]

方法3:拼接时单独转换元素类型

如果不想全列转字符串,可在拼接每行内容时,把每个元素单独转为字符串:

df[df.apply(lambda row: ' '.join(str(x) for x in row), axis=1).str.contains('|'.join(word_list))]

额外提示

词列表中的特殊字符(比如/)属于正则表达式特殊符号,若需要精确匹配,建议用re.escape()处理每个词汇,避免正则语法干扰:

import re
pattern = '|'.join(re.escape(word) for word in word_list)
# 将上述方法中的'|'.join(word_list)替换为pattern即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:11:12