Функцию cumsum() можно использовать для вычисления совокупной суммы значений в столбце кадра данных pandas.
Вы можете использовать следующий синтаксис для вычисления обратной кумулятивной суммы значений в столбце:
df['cumsum_reverse'] = df.loc[:: -1 , 'my_column']. cumsum ()[:: -1 ]
Этот конкретный синтаксис добавляет новый столбец с именем cumsum_reverse в кадр данных pandas, который показывает обратную кумулятивную сумму значений в столбце с названием my_column .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: вычисление обратной кумулятивной суммы в Pandas
Предположим, у нас есть следующий кадр данных pandas, который показывает общий объем продаж, совершенных каким-либо магазином в течение 10 дней подряд:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'sales': [3, 6, 0, 2, 4, 1, 0, 1, 4, 7]})
#view DataFrame
df
day sales
0 1 3
1 2 6
2 3 0
3 4 2
4 5 4
5 6 1
6 7 0
7 8 1
8 9 4
9 10 7
Мы можем использовать следующий синтаксис для вычисления обратной кумулятивной суммы столбца продаж:
#add new column that shows reverse cumulative sum of sales
df['cumsum_reverse_sales'] = df.loc[:: -1 , 'sales']. cumsum ()[:: -1 ]
#view updated DataFrame
df
day sales cumsum_reverse_sales
0 1 3 28
1 2 6 25
2 3 0 19
3 4 2 19
4 5 4 17
5 6 1 13
6 7 0 12
7 8 1 12
8 9 4 11
9 10 7 7
Новый столбец cumsum_reverse_sales показывает совокупный объем продаж , начиная с последней строки .
Вот как мы будем интерпретировать значения в столбце cumsum_reverse_sales :
- Совокупная сумма продаж за 10-й день равна 7 .
- Совокупная сумма продаж за 10-й и 9-й дни равна 11 .
- Совокупная сумма продаж за 10-й, 9-й и 8-й дни равна 12 .
- Совокупная сумма продаж за 10-й, 9-й, 8-й и 7-й дни равна 12 .
И так далее.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как суммировать определенные столбцы в Pandas
Как выполнить GroupBy Sum в Pandas
Как суммировать столбцы на основе условия в Pandas