<p>你需要指定你想要一个<strong>内部的<strong><a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html" rel="nofollow">merge</a>(默认是做一个外部的)。您还需要首先将<code>df1</code>限制为合并列:</p>
<pre><code>In [11]: df2.merge(df1[['0']], how="inner", on=['0']) # equivalently df1[['0']].merge(df2, how="inner", on=['0'])
Out[11]:
0 1 2 3
0 JoeK Joe Kavanagh jkavanagh@nomail.com
1 BarryD Barry Dempsy barry.dempsy@nomail.com
</code></pre>
<p>如果不执行限制(<code>df1[['0']]</code>),它将为重叠的列添加后缀:</p>
<pre><code>In [12]: df2.merge(df1, how="inner", on=['0'])
Out[12]:
0 1_x 2_x 3_x 1_y 2_y 3_y
0 JoeK Joe Kavanagh jkavanagh@nomail.com Joe Kavanagh joe.kavanagh@nomail.com
1 BarryD Barry Dempsy barry.dempsy@nomail.com Barry Dempsy bdempsy@nomail.com
</code></pre>
<p>后缀可以用<code>suffixes</code>kwarg配置。你知道吗</p>
<p><em><a href="http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational-algebra" rel="nofollow">See also the pandas docs for a "brief primer on merge methods"</a>。</em></p>