title: The difference between comparison to np.nan and isnull()
body: <p>I supposed that</p>
  
  <pre><code>data[data.agefm.isnull()]
  </code></pre>
  
  <p>and </p>
  
  <pre><code>data[data.agefm == numpy.nan]
  </code></pre>
  
  <p>are equivalent. But no, the first truly returns rows where agefm is NaN, but the second returns an empty DataFrame. I thank that omitted values are always equal to <code>np.nan</code>, but it seems wrong.</p>
  
  <p>agefm column has float64 type:</p>
  
  <pre><code>(Pdb) data.agefm.describe()
  count    2079.000000
  mean       20.686388
  std         5.002383
  min        10.000000
  25%        17.000000
  50%        20.000000
  75%        23.000000
  max        46.000000
  Name: agefm, dtype: float64
  </code></pre>
  
  <p>Could you explain me please, what does <code>data[data.agefm == np.nan]</code> mean exactly?</p>