Применить cumsum к объекту pandas groupby - PullRequest
0 голосов
/ 12 февраля 2019

Этот вопрос уже задавался несколько раз, но я все еще не могу найти решение, которое работает с моим набором данных.

Мне нужно сгруппировать мой фрейм данных по двум столбцам, а затем заменить остальные столбцы с накопленной суммой каждого столбца, нормализованной по максимуму каждого столбца.Например, объект groupby будет выглядеть так:

df.groupby(['level0','level1'])

level0  level1  col1  col2  col3  col4
a       1
        2
        3
...     
        23
        24
b       1
        2 
        3
...
        23
        24

Я хотел бы сделать что-то вроде

df.groupby(['level0','level1']).apply(lambda x:x.cumsum/max(x))

или

df.groupby(['level0','level1']).transform(pd.Series.cumsum)

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

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

...