擅长:python、mysql、java
<p>我认为这是一种适当的方式。就个人而言,我会使用<code>map</code>而不是合并:</p>
<p>给定起始数据:</p>
<pre><code>>>> df1
Name Age
0 Teddy 20
1 John 30
>>> df2
Name Transport
0 Teddy Airplane
1 Teddy car
2 John motorocyel
</code></pre>
<h2>使用<code>map</code></h2>
<pre><code># De-dupe and create map series
mymap=df2.drop_duplicates('Name').set_index('Name')['Transport']
# Map
df1['Transport'] = df1['Name'].map(mymap)
</code></pre>
<p>结果是:</p>
<pre><code>>>> df1
Name Age Transport
0 Teddy 20 Airplane
1 John 30 motorocyel
</code></pre>
<h2>使用<code>merge</code></h2>
<p>或者,使用<code>merge</code>,正如您所说:</p>
<pre><code>>>> df1.merge(df2.drop_duplicates('Name'))
Name Age Transport
0 Teddy 20 Airplane
1 John 30 motorocyel
</code></pre>
<p>您还可以在合并后删除重复项(如果需要):</p>
<pre><code>>>> df1.merge(df2).drop_duplicates('Name')
Name Age Transport
0 Teddy 20 Airplane
2 John 30 motorocyel
</code></pre>