pandas.api.typing.DataFrameGroupBy.cumsum#

DataFrameGroupBy.cumsum(numeric_only=False, skipna=True, *args, **kwargs)[source]#

Cumulative sum for each group.

Returns a Series or DataFrame of the same size with the cumulative sum computed within each group.

Parameters:
numeric_onlybool, default False

Include only float, int, boolean columns.

skipnabool, default True

Exclude NA/null values. If an entire row/column is NA, the result will be NA.

*argstuple

Positional arguments to be passed to func.

Deprecated since version 3.1.0: Passing *args to GroupBy.cumsum is deprecated and will be removed in a future version of pandas.

**kwargsdict

Additional keyword arguments to be passed to the function.

Deprecated since version 3.1.0: Passing **kwargs to GroupBy.cumsum is deprecated and will be removed in a future version of pandas.

Returns:
Series or DataFrame

Cumulative sum for each group. Same object type as the caller.

See also

Series.cumsum

Apply function cumsum to a Series.

DataFrame.cumsum

Apply function cumsum to each row or column of a DataFrame.

Examples

For SeriesGroupBy:

>>> lst = ["a", "a", "b"]
>>> ser = pd.Series([6, 2, 0], index=lst)
>>> ser
a    6
a    2
b    0
dtype: int64
>>> ser.groupby(level=0).cumsum()
a    6
a    8
b    0
dtype: int64

For DataFrameGroupBy:

>>> data = [[1, 8, 2], [1, 2, 5], [2, 6, 9]]
>>> df = pd.DataFrame(
...     data, columns=["a", "b", "c"], index=["fox", "gorilla", "lion"]
... )
>>> df
          a   b   c
fox       1   8   2
gorilla   1   2   5
lion      2   6   9
>>> df.groupby("a").groups
{1: ['fox', 'gorilla'], 2: ['lion']}
>>> df.groupby("a").cumsum()
          b   c
fox       8   2
gorilla  10   7
lion      6   9