title: Python Pandas calucate Z score of groupby means
body: <p>I have a dataframe like this:</p>
  
  <pre><code>df = pd.DataFrame({'Year' : ['2010', '2010', '2010', '2010', '2010', '2011', '2011', '2011', '2011', '2011', '2012', '2012', '2012', '2012', '2012'],
                     'Name' : ['Bob', 'Joe', 'Bill', 'Bob', 'Joe', 'Dave', 'Bob', 'Joe', 'Bill', 'Bill', 'Joe', 'Dave', 'Dave', 'Joe', 'Steve'],
                      'Score' : [95, 76, 77, 85, 82, 92, 67, 80, 77, 79, 82, 92, 64, 71, 83]})
  </code></pre>
  
  <p>I would like to get the Z Score for each <em>Name</em> in each <em>Year</em>.</p>
  
  <p>I can do it if subset the Year column like this:</p>
  
  <pre><code>(df[df.Year == '2010'].groupby(['Year', 'Name'])['Score'].mean() - df[df.Year == '2010'].groupby(['Year', 'Name'])['Score'].mean().mean()) / ( df[df.Year == '2010'].groupby(['Year', 'Name'])['Score'].mean().std())
  </code></pre>
  
  <p>Is there a cleaner way of doing it?</p>