我有一个这样的数据框
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']})
df
patient gene variant genotype
0 patient1 TYR buu hom
1 patient1 TYR luu het
2 patient1 TYR stm hom
3 patient2 TYR lol het
4 patient2 TYR bla hom
5 patient3 TYR buu het
6 patient3 TYR lol het
7 patient4 TYR buu het
我想识别出有buu和其他变体但没有luu的患者。
patient gene variant genotype
patient3 TYR buu het
patient3 TYR lol het
我该怎么做?
3条答案
按热度按时间tuwxkamq1#
使用
set
操作:输出:
中间体:
使用
groupby.agg
输出:
中间体:
e0bqpujr2#
您也可以尝试以下解决方案:
mqkwyuun3#
可能有一个一行的解决方案,但我宁愿构建一个,这样你就可以理解它背后的逻辑。你想得到所有没有'luu'变体的患者。在数据库世界中,更简单的方法是得到所有 * 有 * 'luu'并将其从原始数据库中分离出来。
这将返回具有'luu'作为变体的患者列表。
对于您的输入,您将获得:
从这一点上,我不完全确定如何从“我想识别有buu和其他变体但没有luu的患者”中获得预期的输出。但是如果你想一次获得多个表达式,你可以这样做:
为此,它将返回: