title: Numpy Logarithm works for boolean Pandas Series but not for boolean column in Dataframe
body: <p>Given a dataframe <code>df</code>:</p>
  
  <pre><code>&gt;&gt;&gt; df = pd.DataFrame([[1., -2.5, True], [2.5, -1., False]])
  &gt;&gt;&gt; df
       0    1      2
  0  1.0 -2.5   True
  1  2.5 -1.0  False
  &gt;&gt;&gt; df.dtypes
  0    float64
  1    float64
  2       bool
  dtype: object
  </code></pre>
  
  <p>Taking the logarithm of the first two columns (a Pandas Dataframe) runs without errors.</p>
  
  <pre><code>&gt;&gt;&gt; np.log(df.iloc[:,:2])
            0   1
  0  0.000000 NaN
  1  0.916291 NaN
  </code></pre>
  
  <p>I know that it does not make sense to take the logarithm of a boolean, but if I try to take the logarithm of the three columns (a Pandas Dataframe), I get the following error:</p>
  
  <pre><code>&gt;&gt;&gt; np.log(df)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'float' object has no attribute 'log'
  </code></pre>
  
  <p>However, if I try take the logarithm only of the third column, i.e., a Pandas Series, it runs without errors.</p>
  
  <pre><code>&gt;&gt;&gt; np.log(df.iloc[:,2])
  __main__:1: RuntimeWarning: divide by zero encountered in log
  0    0.000000
  1        -inf
  Name: 2, dtype: float16
  </code></pre>
  
  <p>Just for the sake of curiosity: why there are these two different behaviors when applying <code>numpy.log</code> in a Pandas boolean Series or in a Pandas Dataframe with a boolean column?</p>