title: Shift column values with condition
body: <p>I have a table:</p>
  
  <pre><code>id | value
  -----------
  1  | 1
  2  | 0
  3  | 0
  4  | 3
  
  </code></pre>
  
  <p>Assuming that we are at the first row. I want to look ahead until I meet a non-zero value and shift it back. If a value is zero, the next_value will be zero too.</p>
  
  <pre><code>id | value | next_value
  -----------------------
  1  | 1     | 3
  2  | 0     | 0
  3  | 0     | 0
  4  | 3     | Nan
  
  </code></pre>
  
  <p>I try to use shift function in pandas but you can only predefine a shift length.</p>