title: Finding historical seasonal average for given month in a monthly series in a dataframe time-series
body: <p>I have a dataframe (snippet below) with index in format YYYYMM and several columns of values, including one called "month" in which I've extracted the MM data from the index column.</p>
  
  <pre><code>      index             st             us       stu     px month
  0    202001      2616757.0      3287969.0  0.795858  2.036    01
  1    201912      3188693.0      3137911.0  1.016183  2.283    12
  2    201911      3610052.0      2752828.0  1.311398  2.625    11
  3    201910      3762043.0      2327289.0  1.616492  2.339    10
  4    201909      3414939.0      2216155.0  1.540930  2.508    09
  </code></pre>
  
  <p>What I want to do is make a new column called 'stavg' which takes the 5-year average of the 'st' column for the given month. For example, since the top row refers to 202001, the stavg for that row should be the average of the January values from 2019, 2018, 2017, 2016, and 2015. Going back in time by each additional year should pull the moving average back as well, such that stavg for the row for, say, 201205 should show the average of the May values from 2011, 2010, 2009, 2008, and 2007.</p>
  
  <pre><code>      index             st             us       stu     px month   stavg   
  0    202001      2616757.0      3287969.0  0.795858  2.036    01     xxx    
  1    201912      3188693.0      3137911.0  1.016183  2.283    12     xxx
  2    201911      3610052.0      2752828.0  1.311398  2.625    11     xxx
  3    201910      3762043.0      2327289.0  1.616492  2.339    10     xxx
  4    201909      3414939.0      2216155.0  1.540930  2.508    09     xxx
  </code></pre>
  
  <p>I know how to generate new columns of data based on operations on other columns on the same row (such as dividing 'st' by 'us' to get 'stu' and extracting digits from index to get 'month') but this notion of creating a column of data based on previous values is really stumping me. </p>
  
  <p>Any clues on how to approach this would be greatly appreciated!! I know that for the first five years of data, I won't be able to populate the 'stavg' column with anything, which is fine--I could use NaN there. </p>