Метод cumsum
Метод cumsum применяется к Series
и возвращает новый объект с кумулятивной суммой элементов.
Кумулятивная сумма на каждой позиции равна сумме всех предыдущих
элементов, включая текущий. По умолчанию метод игнорирует
пропущенные значения NaN, но это поведение можно
изменить с помощью параметра skipna.
Синтаксис
ser.cumsum(axis=None, skipna=True)
Пример
Рассмотрим базовый пример вычисления кумулятивной суммы для числового ряда:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.cumsum()
print(res)
Результат выполнения кода:
0 1
1 3
2 6
3 10
4 15
dtype: int64
Пример
Метод корректно обрабатывает отрицательные числа. Кумулятивная сумма может уменьшаться или становиться отрицательной:
import pandas as pd
ser = pd.Series([5, -2, 3, -1, 4])
res = ser.cumsum()
print(res)
Результат выполнения кода:
0 5
1 3
2 6
3 5
4 9
dtype: int64
Пример
По умолчанию пропущенные значения игнорируются,
и кумулятивная сумма вычисляется для существующих
элементов, а на месте NaN остаётся NaN:
import pandas as pd
ser = pd.Series([1, None, 3, 4, None, 6])
res = ser.cumsum()
print(res)
Результат выполнения кода:
0 1.0
1 NaN
2 4.0
3 8.0
4 NaN
5 14.0
dtype: float64
Пример
Если установить параметр skipna в False,
то первое же пропущенное значение сделает все последующие
элементы также равными NaN:
import pandas as pd
ser = pd.Series([1, None, 3, 4, 5])
res = ser.cumsum(skipna=False)
print(res)
Результат выполнения кода:
0 1.0
1 NaN
2 NaN
3 NaN
4 NaN
dtype: float64
Пример
Метод cumsum можно использовать для расчёта
накопленных итогов, например, при работе с временными
рядами или финансовыми данными:
import pandas as pd
ser = pd.Series([100, 50, 75, 25, 60])
cumulative = ser.cumsum()
print(cumulative)
Результат выполнения кода:
0 100
1 150
2 225
3 250
4 310
dtype: int64
Смотрите также
-
метод
cumsum,
который вычисляет кумулятивную сумму элементов -
метод
sum,
который возвращает сумму всех элементов -
метод
pct_change,
который вычисляет процентное изменение между элементами -
метод
diff,
который вычисляет разность между элементами