title: How to perform an anti-join, or left outer join, (get all the rows in a dataset which are not in another based on multiple keys) in pandas
body: <p>I have two datasets:</p>
  
  <pre><code>df1 = pd.DataFrame(data = {'label1': ['A', 'A', 'B', 'C'], 'label2': ['a', 'b', 'c', 'd'], 'value': [1,2,3,4]})
  
  df2 = pd.DataFrame(data = {'label1': ['A', 'A', 'D', 'E'], 'label'2': ['a', 'd', 'c','e'], 'value2': [10,12,23,14]})
  </code></pre>
  
  <p>I would like to perform an anti-join so that the resulting data frame contains the rows of df1 where the key [['label1', 'label2']] is not found in df2.</p>
  
  <p>The resulting df should be:</p>
  
  <pre><code>label1     label2     value
  A          b          2
  B          c          3
  C          d          4
  </code></pre>
  
  <p>In R using dplyr, the code would be:</p>
  
  <pre><code>df3 = anti_join(df1, df2, by = c("label1", "label2"))
  </code></pre>
  
  <p>Thanks for your help.</p>