code: def _callable_func(self, func, axis, *args, **kwargs):
          
  
          def callable_apply_builder(df, axis=0):
              if not axis:
                  df.index = index
                  df.columns = pandas.RangeIndex(len(df.columns))
              else:
                  df.columns = index
                  df.index = pandas.RangeIndex(len(df.index))
              result = df.apply(func, axis=axis, *args, **kwargs)
              return result
  
          index = self.index if not axis else self.columns
          func_prepared = self._build_mapreduce_func(callable_apply_builder, axis=axis)
          result_data = self._map_across_full_axis(axis, func_prepared)
          return self._post_process_apply(result_data, axis)
docs: Apply callable functions across given axis.
  
          Args:
              func: The functions to apply.
              axis: Target axis to apply the function along.
  
          Returns:
              A new PandasQueryCompiler.