code: def cumprod(self, axis=0, *args, **kwargs):
          
          nv.validate_groupby_func('cumprod', args, kwargs,
                                   ['numeric_only', 'skipna'])
          if axis != 0:
              return self.apply(lambda x: x.cumprod(axis=axis, **kwargs))
  
          return self._cython_transform('cumprod', **kwargs)
docs: Cumulative product for each group.