Скажем, у меня есть фрейм данных
A B C D
2019-01-01 1 10 100 12
2019-01-02 2 20 200 23
2019-01-03 3 30 300 34
и массив для группировки столбцов по
array([0, 1, 0, 2])
I w * sh для группировки фрейма данных по массиву (по столбцу ось), примените функцию, затем верните Series с длиной числа столбцов, содержащих результат применения функции для каждого столбца.
Итак, для вышеупомянутого (с примененной функцией, принимающей сумму группы ), хотелось бы вывести:
A 606
B 60
C 606
D 69
dtype: int64
Моя лучшая попытка:
func = lambda a: np.full(a.shape[1], np.sum(a.values))
df.groupby(groups, axis=1).apply(func)
0 [606, 606]
1 [60]
2 [69]
dtype: object
(в этом примере примененная функция возвращает одинаковые значения внутри группы, но это не может быть гарантировано для реального случая)
Я не могу понять, как это сделать с помощью pandas группового синтаксиса, если я что-то упустил. Кто-нибудь может протянуть руку, спасибо!