我有一个如下的数据帧df["Annotations"]
missense_variant&splice_region_variant
stop_gained&splice_region_variant
splice_acceptor_variant&coding_sequence_variant&intron_variant
splice_donor_variant&splice_acceptor_variant&coding_sequence_variant&5_prime_UTR_variant&intron_variant
missense_variant&NMD_transcript_variant
frameshift_variant&splice_region_variant
splice_acceptor_variant&intron_variant
splice_acceptor_variant&coding_sequence_variant
stop_lost&3_prime_UTR_variant
missense_variant
splice_region_variant
我想替换或添加具有订单优先级的新列。优先权如下所示:
Type Rank
frameshift_variant 1
stop_gained 2
splice_region_variant 3
splice_acceptor_variant 4
splice_donor_variant 5
missense_variant 6
coding_sequence_variant 7
我想获得replace df['Annotations']或添加新列df['Anno_prio']作为:
splice_region_variant
stop_gained
splice_acceptor_variant
splice_acceptor_variant
missense_variant
frameshift_variant
splice_acceptor_variant
splice_acceptor_variant
stop_lost
missense_variant
splice_region_variant
我尝试的方式是每学期:
df['Annotation']=df['Annotation'].str.replace('missense_variant&splice_region_variant','splice_region_variant')
使用熊猫还有其他方法吗
想法是为字典理解中被拆分列表的每个值创建一个
get
字典,默认值为最大Rank
后的下一个值,然后获取dict最小值的键:Pandas唯一的解决方案是将^{} 与^{} 一起使用,最后一个是使用排序索引删除重复的索引值:
过程:
Type
转换为Rank
Annotations
中的第一个类型填充NA结果:
相关问题 更多 >
编程相关推荐