title: Pandas.Index.isin() fails with large data set
body: <p>Here is an example</p>
  
  <p>Create a table with 100M identical rows:</p>
  
  <pre><code>&gt;&gt;&gt; df = pd.DataFrame([('20170101', 'TULIP', 'FLOWER')] * 100000000, columns = ['DATE', 'NAME', 'TYPE'])
  </code></pre>
  
  <p>Set the first 2 columns as index:</p>
  
  <pre><code>&gt;&gt;&gt; df.set_index(['DATE', 'NAME'], inplace=True)
  </code></pre>
  
  <p>Then check if the index is in <code>[('20170101', 'TULIP')]</code>, which should be true for all rows:</p>
  
  <pre><code>&gt;&gt;&gt; df.index.isin([('20170101', 'TULIP')])
  array([False, False, False, ..., False, False, False], dtype=bool)
  </code></pre>
  
  <p>So the result Pandas gives is wrong - it has all of them to be <code>False</code>. In fact, if I only check the first 1M rows, it gives the right result:</p>
  
  <pre><code>&gt;&gt;&gt; df[:1000000].index.isin([('20170101', 'TULIP')])
  array([ True,  True,  True, ...,  True,  True,  True], dtype=bool)
  </code></pre>
  
  <p>Is this a bug in Pandas? Or am I missing something?</p>