我必须重新编码一些我必须编码的单倍型。我将它们放在305行和129902列的Pandas DataFrame上,它看起来像这样(只有一列和20行):
rs# rs12914615
SNPalleles C/T
chrom chr15
pos 98259206
strand +
genome_build ncbi_B36
center affymetrix
protLSID urn:LSID:affymetrix.hapmap.org:Protocol:Genome...
assayLSID urn:LSID:affymetrix.hapmap.org:Assay:SNP_A-837...
panelLSID urn:lsid:dcc.hapmap.org:Panel:CEPH-30-trios:1
QC_code QC+
NA06985 CT
NA06991 CT
NA06993 CT
NA06993.dup CC
NA06994 CC
NA07000 CC
NA07019 CT
NA07022 CT
想法是比较每个个体的值(NA06 ......)是否与野生型(SNPalleles行的第一个字母)具有共同的核苷酸,或者如果没有,则相应地编码。
我的问题是,我不知道如何迭代数据框,同时引用它位于同一列中其他行的野生型。
输出应该如下所示:
NA06985 1
NA06991 1
NA06993 1
NA06993.dup 0
NA06994 0
NA07000 0
NA07019 1
NA07022 1
为野生型(该基因为CC),杂合子(CT)为1,突变体为纯合子(TT)。
感谢您的帮助。
答案 0 :(得分:1)
df.filter(
like='NA', axis=0
).eq(df.loc['SNPalleles'].str.replace('/', '')).astype(int)
rs12914615
rs#
NA06985 1
NA06991 1
NA06993 1
NA06993.dup 0
NA06994 0
NA07000 0
NA07019 1
NA07022 1