code: def cumsum(self, axis=0, *args, **kwargs):
          
          nv.validate_cumsum(args, kwargs)
  
          if axis is not None and axis >= self.ndim:  # Mimic ndarray behaviour.
              raise ValueError("axis(={axis}) out of bounds".format(axis=axis))
  
          if not self._null_fill_value:
              return SparseArray(self.to_dense()).cumsum()
  
          return SparseArray(self.sp_values.cumsum(), sparse_index=self.sp_index,
                             fill_value=self.fill_value)
docs: Cumulative sum of non-NA/null values.
  
          When performing the cumulative summation, any non-NA/null values will
          be skipped. The resulting SparseArray will preserve the locations of
          NaN values, but the fill value will be `np.nan` regardless.
  
          Parameters
          ----------
          axis : int or None
              Axis over which to perform the cumulative summation. If None,
              perform cumulative summation over flattened array.
  
          Returns
          -------
          cumsum : SparseArray