Normalizar DataFrame por grupo

Digamos que eu tenha alguns dados gerados da seguinte maneira:

N = 20
m = 3
data = np.random.normal(size=(N,m)) + np.random.normal(size=(N,m))**3

e então eu crio alguma variável de categorização:

indx = np.random.randint(0,3,size=N).astype(np.int32)

e gere um DataFrame:

import pandas as pd
df = pd.DataFrame(np.hstack((data, indx[:,None])), 
             columns=['a%s' % k for k in range(m)] + [ 'indx'])

Posso obter o valor médio, por grupo, como:

df.groubpy('indx').mean()

O que não tenho certeza de como fazer é subtrair a média de cada grupo, por coluna nos dados originais, para que os dados em cada coluna sejam normalizados pela média dentro do grupo. Todas as sugestões serão apreciadas.

questionAnswers(4)

yourAnswerToTheQuestion