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

如何基于另一个DataFrame的黑名单关键词过滤DataFrame行?

过滤DataFrame中包含黑名单关键词的行

这里给你几种实用的实现方式,根据你的具体需求选择即可:

精确匹配过滤

如果需要精确匹配(原DataFrame目标列的值和黑名单关键词完全一致才过滤),用isin()取反最直接:

# 替换成你实际的DataFrame和列名
original_df = pd.DataFrame({"content": ["apple", "banana", "cherry", "date"]})
blacklist_df = pd.DataFrame({"keywords": ["banana", "date"]})

# 过滤掉content列值在黑名单里的行
filtered_df = original_df[~original_df["content"].isin(blacklist_df["keywords"])]

isin()会生成一个布尔数组,标记哪些行的目标列值存在于黑名单中,~符号用来取反,最终保留不在黑名单里的行。

如果黑名单里有重复关键词,先去重能提升运行效率:

unique_blacklist = blacklist_df["keywords"].unique()
filtered_df = original_df[~original_df["content"].isin(unique_blacklist)]

模糊匹配过滤

如果需要模糊匹配(原DataFrame目标列值包含黑名单关键词就过滤),用str.contains()结合正则匹配:

# 把黑名单关键词拼接成正则匹配模式
keyword_pattern = '|'.join(blacklist_df["keywords"].astype(str))
# 过滤掉包含任何黑名单关键词的行,na=False处理空值避免报错
filtered_df = original_df[~original_df["content"].str.contains(keyword_pattern, na=False)]

比如原列值是"banana pie",黑名单有"banana",这行也会被过滤掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:40:59