title: Find first valid value in each gorup
body: <p>This is a bit of a peculiar task, but I'm trying to come up with an efficient way of finding the first numerical values among several columns for each group. So for the following dataframe:</p>
  
  <pre><code>df = pd.DataFrame({
      'a':[1,1,1,1,1,2,2,2],
      'b':[2,np.nan,4,np.nan,5,np.nan,1,np.nan],
      'c':[np.nan,1,4,0,4,np.nan,6,np.nan],
      'd':[np.nan, np.nan, np.nan, 1,6,2,5,np.nan]
  })
  </code></pre>
  
  <pre><code>   a    b    c    d
  0  1  2.0  NaN  NaN
  1  1  NaN  1.0  NaN
  2  1  4.0  4.0  NaN
  3  1  NaN  0.0  1.0
  4  1  5.0  4.0  6.0
  5  2  NaN  NaN  2.0
  6  2  1.0  6.0  5.0
  7  2  NaN  NaN  NaN
  </code></pre>
  
  <p>For each <code>a</code>, I'd like a single row containing the first valid value in each of the columns, so:</p>
  
  <pre><code>   a   b    c    d
  0  1  2.0  1.0  1.0
  2  2  1.0  6.0  2.0
  </code></pre>