<p>我有一张30万行的桌子。它包含了动物样本的基因数据。我有43k只动物,每只都有190-202个基因(它们可能不同,例如一只动物可能有AA1基因,第二只动物可能没有那个基因)。
示例数据框如下所示:</p>
<pre><code>Gene_Name AnimalNumber Allele1 Allele2
AA1 0001 B B
DSD 0001 A B
KAD334 0001 A B
EE2 0001 A A
AA1 0002 A A
DSD 0002 A A
EE2 0002 A B
COPA 0002 B B
</code></pre>
<p>我需要做什么?你知道吗</p>
<ol>
<li>需要计算表中出现了多少个基因。我只用<code>df[Gene_name].value_counts()</code>就可以了。你知道吗</li>
<li>需要计算有多少基因出现在特定的等位基因配置中。例如,配置只能是:AA、AB、BB。你知道吗</li>
</ol>
<p>我认为这是我的弱点,因为我只是把所有SNP的名字都列出来,然后创建这样的循环:</p>
<pre><code> for i in range(len(genelist)):
pick = len(df[df['Gene_Name']==genelist[i]].where(genotyp['Allele1'] == 'A' | genotyp['Allele2'] == A).dropna())
listOfResults.append(pick)
</code></pre>
<p>我绕了三圈。一个用于AA,一个用于BB,一个用于AB。这是可行的,但需要几个小时:(
那么,如何做到这一点的熊猫没有obvius环?我是说更快。。。你知道吗</p>
<pre><code>Expect result:
Gene_Name all AA AB BB
AA1 3330 2230 1000 0
DSD 1000 870 100 30
...
etc.
</code></pre>
<p>如我所说,我有“全部”一栏。如何加速第二、第三和第四阶段的数据收集。你知道吗</p>
<p>我没有发现对我的问题有任何帮助。你知道吗</p>
<p>我将非常感谢你的帮助。你知道吗</p>