擅长:python、mysql、java
<p>先使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html" rel="nofollow noreferrer">^{<cd1>}</a>,然后聚合<code>sum</code>:</p>
<pre><code>df = (DataframeA.merge(DataframeB, left_on='IDCol2', right_on='ColA')
.groupby('IDCol1', as_index=False)['IDCol3']
.sum())
print (df)
IDCol1 IDCol3
0 ABC 8
1 CDE 9
</code></pre>
<p>另一种解决方案:</p>
<pre><code>s = DataframeB['ColA']
df = DataframeA.set_index('IDCol1').query('IDCol2 in @s')['IDCol3'].sum(level=0).reset_index()
print (df)
IDCol1 IDCol3
0 ABC 8
1 CDE 9
</code></pre>