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

如何删除DataFrame中position列含列表元素的行(支持子串匹配)

解决方法:删除DataFrame中包含指定子串的行

直接用pandas的str.contains结合正则表达式就能搞定,步骤如下:

1. 模拟示例数据(对应你的图示内容)

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'position': ['Sales Manager', 'Engineer', 'Senior Sales', 'Data Analyst'],
    'salary': [8000, 9000, 8500, 7500]
})

# 需要排除的子串列表
exclude_substrings = ['sales', 'engineer']

2. 核心过滤代码

# 把列表转成正则匹配模式,用|分隔所有子串
match_pattern = '|'.join(exclude_substrings)

# 过滤出position列不包含任何指定子串的行
# case=False 忽略大小写,na=False 处理空值避免报错
filtered_df = df[~df['position'].str.contains(match_pattern, case=False, na=False)]

3. 结果说明

运行后filtered_df会只保留David对应的行,因为他的position字段不包含sales或engineer相关子串。

如果你的实际数据里有缺失值,na=False会把这些行保留下来;要是想把缺失值也删掉,改成na=True就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:15:46