code: def apply(self, func, axis, *args, **kwargs):
          
          if callable(func):
              return self._callable_func(func, axis, *args, **kwargs)
          elif isinstance(func, dict):
              return self._dict_func(func, axis, *args, **kwargs)
          elif is_list_like(func):
              return self._list_like_func(func, axis, *args, **kwargs)
          else:
              pass
docs: Apply func across given axis.
  
          Args:
              func: The function to apply.
              axis: Target axis to apply the function along.
  
          Returns:
              A new PandasQueryCompiler.