title: Forward-fill dates within MultiIndexed DataFrame
body: <p>I have a PANDAs DataFrame with a MultiIndex, where one of the levels represents a year:</p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame(dict(A = ['foo', 'foo', 'bar', 'bar', 'bar', 'bar'],
                         B = ['white', 'black', 'white', 'white', 'black', 'black'],
                         year = [1990, 1992, 1990, 1992, 1991, 1992],
                         value = [3.14, 1.20, 4.56, 6.79, 0.01, 0.02]))
  
  df = df.set_index(['A', 'B', 'year'])
  </code></pre>
  
  <p>I would like to forward-fill values, but <em>only for the intervening years in each group</em> (defined by the interaction of A and B). Here is the input:</p>
  
  <pre><code>                value
  A   B     year       
  foo white 1990   3.14
      black 1992   1.20
  bar white 1990   4.56
            1992   6.79
      black 1991   0.01
            1992   0.02
  </code></pre>
  
  <p>And here is the desired output, with one additional row:</p>
  
  <pre><code>                value
  A   B     year       
  foo white 1990   3.14
      black 1992   1.20
  bar white 1990   4.56
            1991   4.56  &lt;-- new forward-filled value
            1992   6.79
      black 1991   0.01
            1992   0.02
  </code></pre>
  
  <p>How can I accomplish this concisely and efficiently? I've tried using combinations of <code>groupby</code> and <code>apply</code>, but I'm new to PANDAS and keep throwing Exceptions. </p>
  
  <p>Here's an example of how I'm naively approaching the problem:</p>
  
  <pre><code>def ffill_years(df):
      df.reset_index(['A', 'B'])  # drop all but 'year'
      year_range = range(df['year'].min(), df['year'].max())
      df.reindex(pd.Series(years)).fillna("ffill")
      return df
  
  df.groupby(level=['A', 'B']).apply(ffill_years)
  </code></pre>
  
  <p>Of course this doesn't work. Any and all tips appreciated!</p>