Skip to content

Commit 81a96f2

Browse files
committed
Finish up
1 parent bfeb945 commit 81a96f2

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

pandas/core/arrays/sparse/array.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,8 +1570,8 @@ def cumsum(self, axis: AxisInt = 0, *args, **kwargs) -> SparseArray:
15701570
if axis is not None and axis >= self.ndim: # Mimic ndarray behaviour.
15711571
raise ValueError(f"axis(={axis}) out of bounds")
15721572

1573-
if not self._null_fill_value and self.fill_value != 0:
1574-
return SparseArray(self.to_dense()).cumsum()
1573+
if not self._null_fill_value:
1574+
return SparseArray(self.to_dense(), fill_value=np.nan).cumsum()
15751575

15761576
return SparseArray(
15771577
self.sp_values.cumsum(),

pandas/tests/arrays/sparse/test_array.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,16 +367,24 @@ def test_cumsum_integer_no_recursion():
367367
# GH 62669: RecursionError in integer SparseArray.cumsum
368368
arr = SparseArray([1, 2, 3])
369369
result = arr.cumsum()
370-
expected = SparseArray([1, 3, 6])
370+
expected = SparseArray([1, 3, 6], fill_value=np.nan)
371371
tm.assert_sp_array_equal(result, expected)
372372

373373
# Also test with some zeros interleaved
374374
arr2 = SparseArray([0, 1, 0, 2])
375375
result2 = arr2.cumsum()
376-
expected2 = SparseArray([0, 1, 1, 3])
376+
expected2 = SparseArray([0, 1, 1, 3], fill_value=np.nan)
377377
tm.assert_sp_array_equal(result2, expected2)
378378

379379

380+
def test_cumsum_float_fill_value_zero():
381+
# GH 62669
382+
arr = pd.arrays.SparseArray([1.0, 0.0, np.nan, 3.0], fill_value=0.0)
383+
result = arr.cumsum()
384+
expected = SparseArray([1.0, 1.0, None, 4.0], fill_value=np.nan)
385+
tm.assert_sp_array_equal(result, expected)
386+
387+
380388
def test_setting_fill_value_updates():
381389
arr = SparseArray([0.0, np.nan], fill_value=0)
382390
arr.fill_value = np.nan

0 commit comments

Comments
 (0)