Нормализуйте DataFrame по группе

Допустим, у меня есть некоторые данные, сгенерированные следующим образом:

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

а затем я создаю некоторую переменную категоризации:

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

и сгенерируйте DataFrame:

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

Я могу получить среднее значение для каждой группы как:

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

То, что я не уверен в том, как это сделать, - это затем вычесть среднее значение для каждой группы для каждого столбца в исходных данных, чтобы данные в каждом столбце нормализовались по среднему значению в группе. Мы ценим любые предложения.

Ответы на вопрос(4)

Ваш ответ на вопрос