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

列表与字符串匹配判断失效,无法生成0/1标记列表求助

问题分析与修复

核心问题

  1. 数据格式错误:landing_outcomes是包含单个长字符串的列表,这个字符串是Pandas Series的打印输出,无法直接和bad_outcomes中的值做比较。
  2. 比较逻辑错误:你的any语句写法完全不符合需求,没有遍历每个结果条目进行判断。
  3. 列表操作错误:向列表添加单个元素应该用append(),而不是+= 数字(这会触发类型错误)。

修复步骤与代码

步骤1:解析原始字符串,提取有效结果条目

先把landing_outcomes里的长字符串拆分,提取出每行的状态部分(比如True ASDS),忽略后面的计数和最后一行的元数据。

步骤2:遍历每个条目,判断是否属于不良结果,生成landing_class

对每个解析后的条目,若在bad_outcomes中则添加0,否则添加1。

修正后的代码:

# 原始列表值(包含单个长字符串的列表)
landing_outcomes =['True ASDS      41\nNone None      19\nTrue RTLS      14\nFalse ASDS      6\nTrue Ocean      5\nFalse Ocean     2\nNone ASDS       2\nFalse RTLS      1\nName: Outcome, dtype: int64']

# 不良结果集合
bad_outcomes = {'False ASDS', 'False Ocean', 'False RTLS', 'None ASDS', 'None None'}

landing_class = []

# 解析字符串:取出第一个元素,按换行拆分,过滤掉最后一行元数据
outcome_lines = landing_outcomes[0].split('\n')[:-1]

# 遍历每个条目,提取状态部分并判断
for line in outcome_lines:
    # 提取每行前半部分的状态字符串(按空格分割,取前两个部分拼接)
    status = ' '.join(line.split()[:2])
    # 判断并添加对应值
    if status in bad_outcomes:
        landing_class.append(0)
    else:
        landing_class.append(1)

print(landing_class)

运行结果

输出:[1, 0, 1, 0, 1, 0, 0, 0]

补充说明

如果landing_outcomes实际是Pandas Series而非字符串,直接用landing_outcomes.index就能获取所有状态条目,无需字符串解析:

# 假设 landing_outcomes 是Pandas Series
for status in landing_outcomes.index:
    landing_class.append(0 if status in bad_outcomes else 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:35:21