title: (pandas) Drop duplicates based on subset where order doesn't matter
body: <p>What is the proper way to go from this df:</p>
  
  <pre><code>&gt;&gt;&gt; df=pd.DataFrame({'a':['jeff','bob','jill'], 'b':['bob','jeff','mike']})
  &gt;&gt;&gt; df
        a     b
  0  jeff   bob
  1   bob  jeff
  2  jill  mike
  </code></pre>
  
  <p>To this:</p>
  
  <pre><code>&gt;&gt;&gt; df2
        a     b
  0  jeff   bob
  2  jill  mike
  </code></pre>
  
  <p>where you're dropping a duplicate row based on the items in 'a' and 'b', without regard to the their specific column.</p>
  
  <p>I can hack together a solution using a lambda expression to create a mask and then drop duplicates based on the mask column, but I'm thinking there has to be a simpler way than this:</p>
  
  <pre><code>&gt;&gt;&gt; df['c'] = df[['a', 'b']].apply(lambda x: ''.join(sorted((x[0], x[1]), \
   key=lambda x: x[0]) + sorted((x[0], x[1]), key=lambda x: x[1] )), axis=1)
  &gt;&gt;&gt; df.drop_duplicates(subset='c', keep='first', inplace=True)
  &gt;&gt;&gt; df = df.iloc[:,:-1]
  </code></pre>