Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions pandas/_libs/groupby.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,12 @@ def group_cumsum(
lab = labels[i]

if lab < 0:
# GH#58811
if uses_mask:
result_mask[i, :] = True
out[i, :] = 0
continue

for j in range(K):
val = values[i, j]

Expand Down
9 changes: 9 additions & 0 deletions pandas/tests/groupby/transform/test_transform.py
Original file line number Diff line number Diff line change
Expand Up @@ -1591,3 +1591,12 @@ def test_min_one_dim_no_type_coercion():

expected = DataFrame({"Y": [9435, -5465765, -5465765, 0, 9435]}, dtype="int32")
tm.assert_frame_equal(expected, result)


def test_nan_in_cumsum_group_label():
# GH#58811
df = DataFrame({"A": [1, None], "B": [2, 3]}, dtype="Int16")
gb = df.groupby("A")["B"]
result = gb.cumsum()
expected = Series([2, None], dtype="Int16", name="B")
tm.assert_series_equal(expected, result)