title: pandas: Calculate the difference from a grouped average
body: <p>I have sensor data for multiple sensors by month and year:</p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame([
   ['A', 'Jan', 2015, 13], 
   ['A', 'Feb', 2015, 10], 
   ['A', 'Jan', 2016, 12], 
   ['A', 'Feb', 2016, 11], 
   ['B', 'Jan', 2015, 7],
   ['B', 'Feb', 2015, 8], 
   ['B', 'Jan', 2016, 4], 
   ['B', 'Feb', 2016, 9]
  ], columns = ['sensor', 'month', 'year', 'value'])
  
  In [2]: df
  Out[2]:
      sensor month  year  value
  0      A   Jan  2015     13
  1      A   Feb  2015     10
  2      A   Jan  2016     12
  3      A   Feb  2016     11
  4      B   Jan  2015      7
  5      B   Feb  2015      8
  6      B   Jan  2016      4
  7      B   Feb  2016      9
  </code></pre>
  
  <p>I calculated the average for each sensor and month with a groupby:</p>
  
  <pre><code>month_avg = df.groupby(['sensor', 'month']).mean()['value']
  
  In [3]: month_avg
  Out[3]:
  sensor  month
  A       Feb      10.5
          Jan      12.5
  B       Feb       8.5
          Jan       5.5
  </code></pre>
  
  <p>Now I want to add a column to <code>df</code> with the difference from the monthly averages, something like this:</p>
  
  <pre><code>    sensor month  year  value  diff_from_avg
  0      A   Jan  2015     13    1.5
  1      A   Feb  2015     10    2.5
  2      A   Jan  2016     12    0.5
  3      A   Feb  2016     11    0.5
  4      B   Jan  2015      7    2.5
  5      B   Feb  2015      8    0.5
  6      B   Jan  2016      4    -1.5
  7      B   Feb  2016      9    -0.5
  </code></pre>
  
  <p>I tried multi-indexing <code>df</code> and <code>avgs_by_month</code> similarly and trying simple subtraction, but no good:</p>
  
  <pre><code>df = df.set_index(['sensor', 'month'])
  df['diff_from_avg'] = month_avg - df.value
  </code></pre>
  
  <p>Thank you for any advice.</p>