我必须重新编码一些我必须编码的单倍型。我将它们放在 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
0 为野生型(该基因为 CC),1 为杂合子(CT),2 为突变纯合子(TT)。
感谢您的帮助。
最佳答案
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
关于Python - 获取 Pandas 的 Apply 函数上的值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219806/