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

如何在Python DataFrame中按元素存在组合过滤列?

Pandas DataFrame 多条件文本过滤实现

原始DataFrame

先构造原始数据:

import pandas as pd

data = {
    'ID': [1, 2, 3, 4, 5, 6],
    'Col_1': [
        'Apple, Cherry, Banana',
        'Apple, Mango',
        'Kiwi, Cherry',
        'Apple, Cherry, Pear',
        'Apple, Melon',
        'Papaya, Cherry'
    ]
}
df = pd.DataFrame(data)

三种过滤需求的实现

1. Col_1同时包含Apple和Cherry

利用str.contains结合逻辑与运算符&实现:

# 过滤同时包含Apple和Cherry的行
filter_both = df[(df['Col_1'].str.contains('Apple')) & (df['Col_1'].str.contains('Cherry'))]
print(filter_both)

输出结果:

ID                  Col_1
0   1  Apple, Cherry, Banana
3   4   Apple, Cherry, Pear

2. Col_1包含Apple但不包含Cherry

用~运算符取反,结合条件实现:

# 过滤包含Apple但不含Cherry的行
filter_apple_only = df[(df['Col_1'].str.contains('Apple')) & (~df['Col_1'].str.contains('Cherry'))]
print(filter_apple_only)

输出结果:

ID          Col_1
1   2   Apple, Mango
4   5   Apple, Melon

3. Col_1包含Cherry但不包含Apple

调换条件并取反:

# 过滤包含Cherry但不含Apple的行
filter_cherry_only = df[(df['Col_1'].str.contains('Cherry')) & (~df['Col_1'].str.contains('Apple'))]
print(filter_cherry_only)

输出结果:

ID            Col_1
2   3     Kiwi, Cherry
5   6  Papaya, Cherry

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:01:07