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

如何基于三类规则在Pandas中从DataFrame多列生成新列SUITEDET

解决方案

不需要生成3个DataFrame合并,推荐使用numpy.select向量化方法实现多条件匹配,代码简洁且执行效率远高于逐行操作:

首先导入依赖:

import pandas as pd
import numpy as np

然后按规则配置条件与对应取值(条件按优先级从高到低排列,先匹配到的规则优先生效,完全符合你的需求逻辑):

# 你的配置列表
usedet = ['pmbac1','pmbac2','pmbac3','pmbac4','pmbac5','pmbac6','bact1','bact2','bact3','bact4','bact5','bact6','bactAdd1','bactAdd2','bactAdd3','abbac1','abbac2','abbac3','abbac4','abbac5','abbac6','BrachSmear','Brachy','Brachy1','Brachy10','Brachy2','Brachy3','Brachy4','Brachy5','Brachy6','Brachy7','Brachy8','Brachy9','BhyC','isol','salm1','salm2','salm3','salm4','pmavb1','pmavb2','pmavb3','pmavb4','pmavb5','pmavb6','pmavsh','pmavsp','cult','zncult','pmfoBK','pmfood','Coccn','Coccid','CoccidGoat','Strngy','StoidE','Stoide','Nemato','NematE','TrichE','Tricd','Tricm','Trico','Trics','Tricu','Monspp','Fecn','BhyC21','BhyCID','BhyCPC','BhyCPCTrig','BhyClt','isol1','isol1C','isol1F','isol1M','isol1S','isol2','isol2C','isol2F','isol2M','isol2S','isol3','isol3C','isol3F','isol3M','isol3S','isolA','isolB','isolC']
usesuite = ["HAEMFF","HAEM4F","INCLIN","BOCOSP","OVCOSP","WECOCF","WECOCA","WECOCP","ECOPCR","BLKWEC","BLKWF","BLKFLK","FLKIND","WECFLK","BHYCULT","BHY21","INCH","LEPTMS","GSH-PX","HISTO","CHLEIAS","CHLEIAG","BVD","BVDANT","BVDAB","CLA","IBRMS","SINFAB","JMILKI","JMILKB","BVDMS","BVDIND","BVDPCR","SBVIMB","SBVIMI","RUMENE","FATLIV","DOWNER","BMMETP","FAMIN","OMETAP","BOVPRO","OPRODP","COPBLK","COPRO","RESPCR"]

# 按优先级从高到低定义条件
conditions = [
    df['SUITE'].isnull(), # 规则1:SUITE为空
    df['DET'].isin(usedet), # 规则2:DET在指定列表
    df['SUITE'].isin(usesuite) # 规则3:SUITE在指定列表
]

# 定义每个条件对应的取值
choices = [
    df['DET'],
    df['SUITE'],
    df['SUITE']
]

# 生成SUITEDET列,未匹配到的默认设为NaN,可按需修改默认值
df['SUITEDET'] = np.select(conditions, choices, default=np.nan)

可查询方向

如果需要了解更多相关用法,可以搜索以下关键词:

  • pandas 多条件赋值
  • numpy.select 用法
  • pandas 向量化操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:04