title: Merge pandas df with how=inner and non-unique items
body: <p>I have two dataframes that look like this:</p>
  
  <p>df1</p>
  
  <pre><code>     a     b     c
  0  foo  None   qux
  1  foo   bar  None
  2  foo  None  None
  3  foo  None   qux
  4  foo  None  None
  </code></pre>
  
  <p>df2</p>
  
  <pre><code>     a     b     c
  0  foo  None   qux
  1  foo  None   qux
  2  foo   bar   qux
  3  foo   bar  None
  4  foo   bar  None
  </code></pre>
  
  <p>I thought that doing</p>
  
  <pre><code>pd.merge(df1, df2, on=df1.columns.tolist(), how='inner')
  </code></pre>
  
  <p>would return</p>
  
  <pre><code>     a     b     c
  0  foo  None   qux
  1  foo  None   qux
  2  foo   bar  None
  </code></pre>
  
  <p>and instead got this:</p>
  
  <pre><code>     a     b     c
  0  foo  None   qux
  1  foo  None   qux
  2  foo  None   qux
  3  foo  None   qux
  4  foo   bar  None
  5  foo   bar  None
  </code></pre>
  
  <p>Can I <em>merge</em> df1 and df2 to only find the intersection of those two? How? I don't understand how the inner join returns more items than are in either df individually.</p>