title: Pandas fillna: Output still has NaN values
body: <p>I am having a strange problem in Pandas. I have a Dataframe with several <code>NaN</code> values. I thought I could fill those <code>NaN</code> values using column means (that is, fill every <code>NaN</code> value with its column mean) but when I try the following</p>
  
  <pre><code>  col_means = mydf.apply(np.mean, 0)
    mydf = mydf.fillna(value=col_means)
  </code></pre>
  
  <p>I still see some <code>NaN</code> values. Why?</p>
  
  <p>Is it because I have more <code>NaN</code> values in my original dataframe than entries in <code>col_means</code>? And what exactly is the difference between fill-by-column vs fill-by-row?</p>