title: Pandas groupby: fill missing values from other group members
body: <p>I think this is best shown with an example. What I'm trying to do is find the non-null number from a group and propagate it to the rest of the group.</p>
  
  <pre><code>In [52]: df = pd.DataFrame.from_dict({1:{'i_id': 2, 'i_num':1}, 2: {'i_id': 2, 'i_num': np.nan}, 3: {'i_id': 2, 'i_num': np.nan}, 4: {'i_id': 3, 'i_num': np.nan}, 5: {'i_id': 3, 'i_num': 5}}, orient='index')
  
  In [53]: df
  Out[53]:
     i_num  i_id
  1      1     2
  2    NaN     2
  3    NaN     2
  4    NaN     3
  5      5     3
  </code></pre>
  
  <p>The DataFrame would look something like this. What I want is to take all the i_id == 2 and make their i_num == 1, and all the i_id == 3, and make their i_num == 5 (so both matching their non-null group neighbors).</p>
  
  <p>So the end result would be this:</p>
  
  <pre><code>   i_num  i_id
  1      1     2
  2      1     2
  3      1     2
  4      5     3
  5      5     3
  </code></pre>