Я хочу сделать groupby
, shift
и cumsum
, что кажется довольно тривиальной задачей, но все еще ломает голову над результатом, который я получаю.Может кто-нибудь подскажите пожалуйста, что я делаю не так.Все результаты, которые я нашел в Интернете, показывают то же или то же самое изменение того, что я делаю.Ниже моя реализация.
temp = pd.DataFrame(data=[['a',1],['a',1],['a',1],['b',1],['b',1],['b',1],['c',1],['c',1]], columns=['ID','X'])
temp['transformed'] = temp.groupby('ID')['X'].cumsum().shift()
print(temp)
ID X transformed
0 a 1 NaN
1 a 1 1.0
2 a 1 2.0
3 b 1 3.0
4 b 1 1.0
5 b 1 2.0
6 c 1 3.0
7 c 1 1.0
Это неправильно, потому что фактическое или то, что я ищу, как показано ниже:
ID X transformed
0 a 1 NaN
1 a 1 1.0
2 a 1 2.0
3 b 1 NaN
4 b 1 1.0
5 b 1 2.0
6 c 1 NaN
7 c 1 1.0
Заранее большое спасибо.