code: def _dict_func(self, func, axis, *args, **kwargs):
          
          if "axis" not in kwargs:
              kwargs["axis"] = axis
  
          if axis == 0:
              index = self.columns
          else:
              index = self.index
          func = {idx: func[key] for key in func for idx in index.get_indexer_for([key])}
  
          def dict_apply_builder(df, func_dict={}):
              # Sometimes `apply` can return a `Series`, but we require that internally
              # all objects are `DataFrame`s.
              return pandas.DataFrame(df.apply(func_dict, *args, **kwargs))
  
          result_data = self.data.apply_func_to_select_indices_along_full_axis(
              axis, dict_apply_builder, func, keep_remaining=False
          )
          full_result = self._post_process_apply(result_data, axis)
          return full_result
docs: Apply function to certain indices across given axis.
  
          Args:
              func: The function to apply.
              axis: Target axis to apply the function along.
  
          Returns:
              A new PandasQueryCompiler.