title: Why does pandas "None | True" return False when Python "None or True" returns True?
body: <p>In pure Python, <code>None or True</code> returns <code>True</code>.<br />
  However with pandas when I'm doing a <code>|</code> between two Series containing None values, results are not as I expected:</p>
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; df.to_dict()
  {'buybox': {0: None}, 'buybox_y': {0: True}}
  &gt;&gt;&gt; df
      buybox  buybox_y
  0   None    True
  
  &gt;&gt;&gt; df['buybox'] = (df['buybox'] | df['buybox_y'])
  &gt;&gt;&gt; df
      buybox  buybox_y
  0   False   True
  </code></pre>
  <p>Expected result:</p>
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; df
      buybox  buybox_y
  0   True    True
  </code></pre>
  <p>I get the result I want by applying the OR operation twice, but I don't get why I should do this.</p>
  <p>I'm not looking for a workaround (I have it by applying <code>df['buybox'] = (df['buybox'] | df['buybox_y'])</code> twice in a row) but an explanation, thus the 'why' in the title.</p>