这似乎很简单,但是却使我陷入困境。双关语意在编码。
我有一个具有以下格式的数据框:
df = pd.DataFrame({"chrom":[12,12],
"Pos":[112233,112234],
"ref_base":["A","G"],
"alt_base":["T","C"],
"A":[12,22],
"T":[3,34],
"G":[12,23],
"C":[22,21]},
index=[0,1])
chrom Pos ref_base alt_base A T G C
12 112233 A T 12 3 23 22
12 112234 G C 22 34 23 21
我需要找到一种创建新列的方法,该列包含与ref_base列中的值匹配的A,T,G或C列中的值。
chrom Pos ref_base alt_base A T G C ref_val
12 112233 A T 12 3 23 22 12
12 112234 G C 22 34 23 21 23
我最终想要做的是创建一个包含(ref_val,alt_base_val)元组的列,因此,如果有比首先创建各个列并加入它们更好的方法,那么我很高兴了解到那是。
chrom Pos ref_base alt_base A T G C AD
12 112233 A T 12 3 23 22 (12,3)
12 112234 G C 22 34 23 21 (23,21)
答案 0 :(得分:2)
使用lookup
df['New']=tuple(zip(df.lookup(df.index,df.ref_base),df.lookup(df.index,df.alt_base)))
df
A C G Pos T alt_base chrom ref_base New
0 12 22 12 112233 3 T 12 A (12, 3)
1 22 21 23 112234 34 C 12 G (23, 21)