Python - 获取 Pandas 的 Apply 函数上的值的索引

标签 python pandas numpy dataframe apply

我必须重新编码一些我必须编码的单倍型。我将它们放在 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/

相关文章:

python - Python 注释的一组双引号?

python - 使用python生成数据簇?

python - Facebook api 图访问 token

python - 如何使用 Pandas 引用一个值创建虚拟变量?

python - 如何安装 Pandas 0.20.0

python - Mayavi 网格 - numpy 网格网格不显示

python - 列出 pandas dataframe 列中的所有单词

python - Pandas df.values 不返回索引值

python - Numpy - 矩阵向量与标量向量的点积

python - numpy向量化函数以接受不同长度的向量并返回张量结果