【问题标题】:Python - Get the Indexes of a value on Pandas' Apply functionPython - 在 Pandas 的 Apply 函数中获取值的索引
【发布时间】:2017-04-05 00:14:31
【问题描述】:

我必须重新编码一些我必须编码的单倍型。我将它们放在 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 行的第一个字母),否则,对其进行相应编码。

我的问题是我不知道如何迭代数据框,同时引用同一列中其他行上的 Wildtype。

输出应该是这样的:

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

0 是野生型(该基因的 CC),1 是杂合子 (CT),2 是突变纯合子 (TT)。

感谢您的帮助。

【问题讨论】:

    标签: python pandas numpy dataframe apply


    【解决方案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
    

    【讨论】:

    • 您的代码返回:“ValueError: cannot reindex from duplicate axis”。
    猜你喜欢
    • 2017-06-09
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2015-12-04
    相关资源
    最近更新 更多