Как сделать кумулятивную конкатенацию в кадре данных панд?
Я обнаружил, что в R есть несколько решений, но не могу найти его в python.
Вот проблема: предположим, у нас есть фрейм данных: со столбцами: date
и name
:
import pandas as pd
d = {'date': [1,1,2,2,3,3,3,4,4,4], 'name':['A','B','A','C','A','B','B','A','B','C']}
df = pd.DataFrame(data=d)
Я хочу получить CUM_CONCAT
, который является кумулятивной объединенной датой группировки:
date name CUM_CONCAT
0 1 A [A]
1 1 B [A,B]
2 2 A [A]
3 2 C [A,C]
4 3 A [A]
5 3 B [A,B]
6 3 B [A,B,B]
7 4 A [A]
8 4 B [A,B]
9 4 C [A,B,C]
пока я пробовал:
temp = df.groupby(['date'])['name'].apply(list)
df = df.join(temp, 'date', rsuffix='_cum_concat')
и у меня было:
date name CUM_CONCAT
0 1 A [A,B]
1 1 B [A,B]
2 2 A [A,C]
3 2 C [A,C]
4 3 A [A,B,B]
5 3 B [A,B,B]
6 3 B [A,B,B]
7 4 A [A,B,C]
8 4 B [A,B,C]
9 4 C [A,B,C]
Я знаю, что есть функции .rolling
и cumsum
, которые похожи на то, что мне нужно, но они в основном для кумулятивной суммы, а не для concat.
Любая помощь будет оценена !!!