title: Can one perform a left join in pandas that selects only the first match on the right?
body: <p>Can one perform a left join in pandas that selects only the first match on the right? Example: </p>
  
  <pre><code>left            = pd.DataFrame()
  left['age']     = [11, 12]
  right           = pd.DataFrame()
  right['age']    = [10, 11, 11]
  right['salary'] = [ 100, 150, 200 ]
  left.merge( right, how='left', on='age' )
  </code></pre>
  
  <p>Returns </p>
  
  <pre><code>   age  salary
  0   11     150
  1   11     200
  2   12     NaN
  </code></pre>
  
  <p>But what I would like is to preserve the number of rows of left, by merely taking the first match. That is: </p>
  
  <pre><code>   age  salary
  0   11     150
  2   12     NaN
  </code></pre>
  
  <p>So I've been using </p>
  
  <pre><code>left.merge( right.drop_duplicates(['age']), how='left', on='age')
  </code></pre>
  
  <p>but I believe this makes a full copy of right. And it smells funny. </p>
  
  <p>Is there a more elegant way?  </p>