code: def apply_empty_result(self):
          
  
          # we are not asked to reduce or infer reduction
          # so just return a copy of the existing object
          if self.result_type not in ['reduce', None]:
              return self.obj.copy()
  
          # we may need to infer
          reduce = self.result_type == 'reduce'
  
          from pandas import Series
          if not reduce:
  
              EMPTY_SERIES = Series([])
              try:
                  r = self.f(EMPTY_SERIES, *self.args, **self.kwds)
                  reduce = not isinstance(r, Series)
              except Exception:
                  pass
  
          if reduce:
              return self.obj._constructor_sliced(np.nan, index=self.agg_axis)
          else:
              return self.obj.copy()
docs: we have an empty result; at least 1 axis is 0
  
          we will try to apply the function to an empty
          series in order to see if this is a reduction function