Cumsum Python Dataframe - до предыдущей строки - PullRequest
0 голосов
/ 09 июля 2020

У меня проблема. Я бы скопировал эту формулу Excel:

=SUMIFS($AD$6:AD6;$D$6:D6;D7)

Я хочу получить совокупный результат до предыдущей строки

ID = [1,1,1,2,2]
$ = [10,10,10,10,10]

Result = [nan,10,20,nan,10]

спасибо

1 Ответ

1 голос
/ 09 июля 2020

Используйте лямбда-функцию с Series.shift и Series.cumsum в GroupBy.transform или GroupBy.apply:

df = pd.DataFrame({
    'ID':[1,1,1,2,2],
    '$': [10,10,10,10,10]
    })

df['new'] = df.groupby('ID')['$'].transform(lambda x: x.shift().cumsum())
#alternative
#df['new'] = df.groupby('ID')['$'].apply(lambda x: x.shift().cumsum())
print (df)
   ID   $   new
0   1  10   NaN
1   1  10  10.0
2   1  10  20.0
3   2  10   NaN
4   2  10  10.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...