回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两个pandas数据帧,如下所示:</p>
<pre><code>import pandas as pd
df_one = pd.DataFrame( {
'A': [1,1,2,3,4,4,4],
'B1': [0.5,0.0,0.2,0.1,0.3,0.2,0.1],
'B2': [0.2,0.3,0.1,0.5,0.3,0.1,0.2],
'B3': [0.1,0.2,0.0,0.9,0.0,0.3,0.5]} );
df_two = pd.DataFrame( {
'A': [1,2,3,4],
'C1': [1.0,9.0,2.1,9.0],
'C2': [2.0,3.0,0.7,1.1],
'C3': [5.0,4.0,2.3,3.4]} );
df_one
A B1 B2 B3
0 1 0.5 0.2 0.1
1 1 0.0 0.3 0.2
2 2 0.2 0.1 0.0
3 3 0.1 0.5 0.9
4 4 0.3 0.3 0.0
5 4 0.2 0.1 0.3
6 4 0.1 0.2 0.5
df_two
A C1 C2 C3
0 1 1.0 2.0 5.0
1 2 9.0 3.0 4.0
2 3 2.1 0.7 2.3
3 4 9.0 1.1 3.4
</code></pre>
<p>我想做的是计算一个标量积,我将把第一个数据帧的行乘以第二个数据帧的行,即<code>\sum_i B_i * C_i</code>,但这样做的方式是,只有在<code>A</code>列的值在两个帧中匹配时,第一个数据帧中的一行乘以第二个数据帧中的一行。我知道如何循环和使用if's,但我想用一种更有效的纽姆式或熊猫式的方式来做。非常感谢您的帮助:)</p>