回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我使用python pandas跨数据帧执行分组和聚合,但现在我想执行行的特定成对聚合(n选择2,统计组合)。下面是示例数据,我想看看[mygenes]中的所有基因对:</p>
<pre><code>import pandas
import itertools
mygenes=['ABC1', 'ABC2', 'ABC3', 'ABC4']
df = pandas.DataFrame({'Gene' : ['ABC1', 'ABC2', 'ABC3', 'ABC4','ABC5'],
'case1' : [0,1,1,0,0],
'case2' : [1,1,1,0,1],
'control1':[0,0,1,1,1],
'control2':[1,0,0,1,0] })
>>> df
Gene case1 case2 control1 control2
0 ABC1 0 1 0 1
1 ABC2 1 1 0 0
2 ABC3 1 1 1 0
3 ABC4 0 0 1 1
4 ABC5 0 1 1 0
</code></pre>
<p>最终产品应该是这样的(默认情况下应用np.sum是可以的):</p>
<pre><code> case1 case2 control1 control2
'ABC1', 'ABC2' 1 2 0 1
'ABC1', 'ABC3' 1 2 1 1
'ABC1', 'ABC4' 0 1 1 2
'ABC2', 'ABC3' 2 2 1 0
'ABC2', 'ABC4' 1 1 1 1
'ABC3', 'ABC4' 1 1 2 1
</code></pre>
<p>利用itertools($<code>itertools.combinations(mygenes, 2)</code>)可以很容易地获得基因对集,但是我无法根据它们的值来计算如何聚合特定的行。有人能建议吗?谢谢你</p>