title: Why isn't pandas logical operator aligning on the index like it should?
body: <p>Consider this simple setup:</p>
  
  <pre><code>x = pd.Series([1, 2, 3], index=list('abc'))
  y = pd.Series([2, 3, 3], index=list('bca'))
  
  x
  
  a    1
  b    2
  c    3
  dtype: int64
  
  y
  
  b    2
  c    3
  a    3
  dtype: int64
  </code></pre>
  
  <p>As you can see, the indexes are the same, just in a different order. </p>
  
  <p>Now, consider a simple logical comparison using the equality (<code>==</code>) operator:</p>
  
  <pre><code>x == y
  ---------------------------------------------------------------------------
  ValueError                                Traceback (most recent call last)
  </code></pre>
  
  <p>This throws a <code>ValueError</code>, most likely because the indexes do not match. On the other hand, calling the equivalent <code>eq</code> operator works:</p>
  
  <pre><code>x.eq(y)
  
  a    False
  b     True
  c     True
  dtype: bool
  </code></pre>
  
  <p>OTOH, the operator method works given <code>y</code> is first reordered...</p>
  
  <pre><code>x == y.reindex_like(x)
  
  a    False
  b     True
  c     True
  dtype: bool
  </code></pre>
  
  <p>My understanding was that the function and operator comparison should do the same thing, all other things equal. What is <code>eq</code> doing that the operator comparison doesn't? </p>