title: Pandas DataFrame replace negative values with latest preceding positive value
body: <p>Consider a <code>DataFrame</code> such as</p>
  <pre><code>df = pd.DataFrame({'a': [1,-2,0,3,-1,2], 
                     'b': [-1,-2,-5,-7,-1,-1], 
                     'c': [-1,-2,-5,4,5,3]})
  </code></pre>
  <p>For each column, how to replace any negative value with the last positive value or zero ? Last here refers from top to bottom for each column. The closest solution noticed is for instance <code>df[df &lt; 0] = 0</code>.</p>
  <p>The expected result would be a <code>DataFrame</code> such as</p>
  <pre><code>df_res = pd.DataFrame({'a': [1,1,0,3,3,2], 
                         'b': [0,0,0,0,0,0], 
                         'c': [0,0,0,4,5,3]})
  </code></pre>