2017-04-05 44 views
1

我必須重新編碼一些我必須編碼的單倍型。我有他們的305行和129902列的熊貓數據框中,它看起來像這樣(只有一列和20行):Python - 獲取熊貓應用函數的值索引

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行的第一個字母)相同的核苷酸或者如果不是,則相應地編碼它。

我的問題是,我不知道如何遍歷數據框,同時引用同一列中其他行上的wildtype。

輸出應該是這樣的:

NA06985              1 
NA06991              1 
NA06993              1 
NA06993.dup             0 
NA06994              0 
NA07000              0 
NA07019              1 
NA07022              1 

爲0野生型(CC該基因),1-雜合子(CT)和2突變型純合子(TT)。

感謝您的幫助。

回答

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 
+0

您的代碼返回:「ValueError:無法從重複軸重新索引」。 – Hjorvik