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

如何用Pandas筛选含buu变异且无luu的多变异患者数据

Pandas筛选特定变异患者的解决方案

需求回顾

需要筛选出同时拥有buu变异及其他变异,但不存在luu变异的患者记录。

代码实现

import pandas as pd

# 初始化原始DataFrame
df = pd.DataFrame({
    'patient': ['patient1', 'patient1', 'patient1','patient2', 'patient2', 'patient3','patient3','patient4'], 
    'gene':['TYR','TYR','TYR','TYR','TYR','TYR','TYR','TYR'],
    'variant': ['buu', 'luu', 'stm','lol', 'bla', 'buu', 'lol','buu'],
    'genotype': ['hom', 'het', 'hom','het', 'hom', 'het', 'het','het']
})

# 按患者分组,筛选符合条件的记录
result = df.groupby('patient').filter(lambda group:
    ('buu' in group['variant'].values) and  # 存在buu变异
    (group['variant'].nunique() > 1) and    # 存在其他非buu变异
    ('luu' not in group['variant'].values)  # 不存在luu变异
)

print(result)

输出结果

patient gene variant genotype
5  patient3  TYR     buu      het
6  patient3  TYR     lol      het

逻辑说明

  1. 分组:通过groupby('patient')将数据按患者维度分组,每个组包含该患者的所有变异记录
  2. 筛选判断:使用filter()方法对每个分组进行条件校验:
    • 确认分组内存在buu变异
    • 确认分组内变异类型不止一种(即存在除buu外的其他变异)
    • 确认分组内完全没有luu变异
  3. 结果输出:filter()会自动保留所有符合条件的分组的原始记录,得到目标结果

内容的提问来源于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.07.25 21:15:17