Нормализуйте 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()
То, что я не уверен в том, как это сделать, - это затем вычесть среднее значение для каждой группы для каждого столбца в исходных данных, чтобы данные в каждом столбце нормализовались по среднему значению в группе. Мы ценим любые предложения.