title: Pandas Boolean Indexing Issue
body: <p>Can anyone explain the following behaviour. I am expecting all three rows to be returned.</p>
  <pre><code>import pandas as pd
  
  test_dict = {
      'col1':[None, None, None],
      'col2':[True, False, True],
      'col3':[True, True, False]
  }
  
  df = pd.DataFrame(test_dict)
  
  df[ df.col1 | df.col2 | df.col3 ]
  &gt;&gt;&gt; Return only first two rows (index 0 and 1)
  </code></pre>
  <p>Replacing the <code>None</code> values with empty strings using <code>df.fillna('')</code> appears to fix it but I don't understand why the first two rows work fine if <code>None</code> is an issue.</p>
  <p>Also changing the order of the comparisons effects it. If I swap <code>col2</code> and <code>col3</code> in the mask then the row with index 1 is no longer returned but the row with index 2 is returned. If <code>col1</code> comes last then all rows are returned.</p>