<p>给定2个数据帧</p>
<pre><code>A = pd.DataFrame({'one':['a','a','a','b','b','b'], 'two':[1,2,3,3,2,1]})
B = pd.DataFrame({'one':['a','a','a','b','b','b'], 'two':[4,3,2,2,3,4]})
</code></pre>
<p>A</p>
<pre><code> one two
0 a 1
1 a 2
2 a 3
3 b 3
4 b 2
5 b 1
</code></pre>
<p>B类</p>
<pre><code> one two
0 a 4
1 a 3
2 a 2
3 b 2
4 b 3
5 b 4
</code></pre>
<p>如何同时计算相关性<code>A[A['one']=='a']['two'].corr(B[B['one']['two'] =='a'])</code>和<code>A[A['one']=='b']['two'].corr(B[B['one']['two'] =='b'])</code>?最终目标是将相关性绘制为“一”列值“a”和“b”的函数,即</p>
<pre><code> corr
a -1.0
b -1.0
</code></pre>
<p>迭代这两个组的一种方法是:</p>
<pre><code>x, y = A.groupby('one'), B.groupby('one')
res = {i[0]:i[1].two.corr(y.get_group(i[0]).two) for i in x}
pd.DataFrame(res.items())
# 0 1
#0 a -1
#1 b -1
</code></pre>