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

如何基于合并后pandas DataFrame的两列值按条件新增分类字段

实现方案

首先我们默认你的第三个test DataFrame结构为单列存储待评估检测方法检出的变异ID,示例如下(和你给出的预期结果匹配):

test = pd.DataFrame([['ch1.1234578C>T'], ['ch3.234569A>T']], columns=['test_variant'])

操作步骤

  1. 先将test表中所有变异ID转为集合,大幅提升存在性判断的效率
  2. 用numpy的向量化条件判断按规则生成Test列,比逐行遍历apply效率高很多,适合大样本量场景

完整实现代码:

import numpy as np

# 将test的变异ID转为集合
test_variant_set = set(test['test_variant'])

# 按规则生成Test列
comparative['Test'] = np.where(
    # 条件1:对照为真阳、且待评估检测也检出 → 真阳性
    (comparative['CONTROL'] != 'Real negative') & comparative['CONTROL'].isin(test_variant_set),
    'True-positive',
    np.where(
        # 条件2:对照为真阳、但待评估检测未检出 → 假阴性
        (comparative['CONTROL'] != 'Real negative') & ~comparative['CONTROL'].isin(test_variant_set),
        'False-negative',
        np.where(
            # 条件3:对照为真阴、但待评估检测检出 → 假阳性
            (comparative['CONTROL'] == 'Real negative') & comparative['All_common_variants_ID'].isin(test_variant_set),
            'False-positive',
            # 剩余情况:对照为真阴、待评估检测未检出 → 真阴性
            'True-negative'
        )
    )
)

运行后输出的comparative表就和你给出的预期结果完全一致。

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:48:01