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

基于字符串条件筛选含列表列的DataFrame行

解决方案

直接用下面的代码实现你的需求,一行搞定核心筛选逻辑:

rez = dataframe[dataframe[column].apply(lambda x: ("garlic" in x) and ("peas" in x) and any("onion" in item for item in x))]

要是需要更灵活的规则配置(比如后续要加更多配料或调整匹配方式),可以把条件拆出来维护:

# 定义每个配料的匹配规则
match_rules = [
    lambda ingredients: "garlic" in ingredients,  # 精确匹配garlic
    lambda ingredients: "peas" in ingredients,     # 精确匹配peas
    lambda ingredients: any("onion" in ing for ing in ingredients)  # 匹配含onion子串的配料
]

# 筛选满足所有规则的行
rez = dataframe[dataframe[column].apply(lambda x: all(rule(x) for rule in match_rules))]

逻辑解释

  • 用all替代原代码的any:保证只有满足所有配料要求的行才会被保留,而不是只要沾到一个配料就选上
  • 针对"onion"的特殊处理:遍历当前行的所有配料,只要有一个配料包含"onion"子串就符合条件
  • 其他配料用精确匹配,确保行里确实存在该配料

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:30:04