Просто как:
df['new_supply'] = df.demand.cumsum()
Именно выше должно работать, когда мы ищем накопленную сумму столбца.
Просто имитирую ваш DataFrame:
>>> df
item Date supply demand
0 A 2018-01-01 - 10
1 A 2018-01-02 - 15
2 A 2018-01-03 100 30
3 A 2018-01-04 - 10
4 A 2018-01-05 - 40
5 A 2018-01-06 50 50
6 A 2018-01-07 - 10
7 B 2018-01-01 - 20
8 B 2018-01-02 - 30
9 B 2018-01-03 20 60
10 B 2018-01-04 - 20
11 B 2018-01-05 100 10
12 B 2018-01-06 - 23
13 B 2018-01-07 - 30
Итак, когда мы сделаем df.<particulat_col>.cumsum()
, это произведет cumsun этого, в нашем случае следующим образом с новым желаемым столбцом:
>>> df
item Date supply demand new_supply
0 A 2018-01-01 - 10 10
1 A 2018-01-02 - 15 25
2 A 2018-01-03 100 30 55
3 A 2018-01-04 - 10 65
4 A 2018-01-05 - 40 105
5 A 2018-01-06 50 50 155
6 A 2018-01-07 - 10 165
7 B 2018-01-01 - 20 185
8 B 2018-01-02 - 30 215
9 B 2018-01-03 20 60 275
10 B 2018-01-04 - 20 295
11 B 2018-01-05 100 10 305
12 B 2018-01-06 - 23 328
13 B 2018-01-07 - 30 358
Если на самом деле мы ищем совокупную или совокупную сумму из двух предметов, то она должна идти вместе с groupby
следующим образом:
>>> df['new_supply'] = df.groupby('item')['demand'].cumsum()
>>> df
item Date supply demand new_supply
0 A 2018-01-01 - 10 10
1 A 2018-01-02 - 15 25
2 A 2018-01-03 100 30 55
3 A 2018-01-04 - 10 65
4 A 2018-01-05 - 40 105
5 A 2018-01-06 50 50 155
6 A 2018-01-07 - 10 165
7 B 2018-01-01 - 20 20
8 B 2018-01-02 - 30 50
9 B 2018-01-03 20 60 110
10 B 2018-01-04 - 20 130
11 B 2018-01-05 100 10 140
12 B 2018-01-06 - 23 163
13 B 2018-01-07 - 30 193
Примечание: Если вам нужен желаемый результат, вам нужно изменить свой вопрос с помощью логики, вы действительно фильтруете набор данных!