title: Python, Pandas ffill() does not work on object columns
body: <p>Here is the sample dataFrame:</p>
  
  <pre><code>data = np.matrix([[4,3,6,4,1,7,5,5], [1,2,3,6,4,2,4,9], ['a',np.nan, np.nan, 'b', np.nan, 'c', np.nan, 'd'],[1,np.nan, np.nan, 2, np.nan, 2, np.nan, 2]]).T
  data = pd.DataFrame(data)
  
  &gt;&gt;&gt; data
  
     0  1    2    3
  0  4  1    a    1
  1  3  2  nan  nan
  2  6  3  nan  nan
  3  4  6    b    2
  4  1  4  nan  nan
  5  7  2    c    2
  6  5  4  nan  nan
  7  5  9    d    2
  
  &gt;&gt;&gt; data.dtypes
  
  0    object
  1    object
  2    object
  3    object
  dtype: object
  </code></pre>
  
  <p>As you can see, the <code>dtypes</code> for some of the columns are <code>object</code>. They are not <code>float</code>, or <code>int</code>.</p>
  
  <p>If I type in, <code>data.ffill()</code>, to the Console, it doesn't do anything. But, If I try <code>data[3] = data[3].astype(float).ffill()</code></p>
  
  <p>it changes <code>data</code> to:</p>
  
  <pre><code>   0  1    2    3
  0  4  1    a  1.0
  1  3  2  nan  1.0
  2  6  3  nan  1.0
  3  4  6    b  2.0
  4  1  4  nan  2.0
  5  7  2    c  2.0
  6  5  4  nan  2.0
  7  5  9    d  2.0
  </code></pre>
  
  <p>Apparently pd.ffill() works only on numeric columns, but not on string columns. <code>data[2] = data[2].astype(str).ffill()</code> didn't change anything. How can I forward fill on rows with <code>dtype=object</code>?</p>
  
  <p>Here is the output I want:</p>
  
  <pre><code>   0  1    2    3
  0  4  1    a  1.0
  1  3  2    a  1.0
  2  6  3    a  1.0
  3  4  6    b  2.0
  4  1  4    b  2.0
  5  7  2    c  2.0
  </code></pre>
  
  <ul>
  <li>I extracted data from csv using pd.read_csv(). In the original csv file, some columns of numeric values and some have string columns</li>
  </ul>