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

如何筛选pandas DataFrame中列值包含于指定字符串的行

pandas 反向包含筛选实现方案

你需要的是反向包含判断,和常用的「列值是否包含指定字符串」逻辑相反,核心逻辑为判断给定的目标字符串是否包含当前行的列值,以下是可直接复用的实现:


测试数据构造

和你给出的示例结构对齐:

import pandas as pd

df = pd.DataFrame({
    'Part_Number': ['A1127', 'A1347']
})
target_str = "ZA1127B.48"

实现方法

方法1:列表推导(小数据量首选,写法简单性能优异)

filtered_df = df[[x in target_str for x in df['Part_Number']]]

方法2:apply 实现(逻辑最直观,易扩展自定义规则)

filtered_df = df[df['Part_Number'].apply(lambda x: x in target_str)]

方法3:向量化实现(十万行以上大数据量首选,性能最优)

import numpy as np

# 包装in判断为向量化函数
check_contain = np.vectorize(lambda x: x in target_str)
filtered_df = df[check_contain(df['Part_Number'])]

执行结果

三种方法得到的筛选结果一致,符合预期:

Part_Number
0       A1127

注意事项

  • 若列值存在非字符串类型,需要先做类型转换:df['Part_Number'] = df['Part_Number'].astype(str)
  • 若需要忽略大小写判断,可以统一转大小写后再比较:lambda x: x.lower() in target_str.lower()
  • 若列中存在空值,建议先过滤空值再执行筛选,避免判断异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:54:03