Я потратил несколько часов, пытаясь сделать «кумулятивную группу по сумме» на кадре данных pandas. Я смотрел на все StackOverflow ответы и на удивление ни один из них не может решить мою (очень элементарное) проблема:Группа Pandas от cumsum keep colums
У меня есть dataframe:
df1 Out[8]: Name Date Amount 0 Jack 2016-01-31 10 1 Jack 2016-02-29 5 2 Jack 2016-02-29 8 3 Jill 2016-01-31 10 4 Jill 2016-02-29 5
Я пытаюсь
- группа по ['Name', 'Date'] и
- cumsum 'Amount'.
- То есть.
Так желаемый результат:
df1 Out[10]: Name Date Cumsum 0 Jack 2016-01-31 10 1 Jack 2016-02-29 23 2 Jill 2016-01-31 10 3 Jill 2016-02-29 15
EDIT: Я упрощая вопрос. С текущими ответами я до сих пор не могу получить правильную «бегущую» cumsum. Посмотрите внимательно, я хочу увидеть кумулятивную сумму «10, 23, 10, 15». На словах я хочу видеть каждую дату подряд общую кумулятивную сумму для человека. NB: Если для одного и того же человека есть две записи в одну дату, я хочу их суммировать, а затем добавить их в запущенную cumsum и только затем распечатать сумму.
Я ценю любые советы и/или помощь.
Спасибо за ответ, однако вторая группа должна сваливать вместе несколько 2016-02-29 сумм Джека. Таким образом, Cumsum должен иметь только четыре строки с надписью «10, 23, 10, 15». Я постараюсь работать с тем, что вы предоставили, тем не менее, спасибо. – gmarais
Пожалуйста, проверьте отредактированный ответ. – jezrael
Гений! спасибо спасибо – gmarais