code: def _perturb_df(batch: pd.DataFrame, index: int):
      obs_batch = np.vstack(batch["obs"].values)
      _perturb_fn(obs_batch, index)
      batch["perturbed_obs"] = list(obs_batch)
      return batch
  
file_path: ray/python/ray/rllib/offline/feature_importance.py
imports: import copy
  import numpy
  import pandas
  from typing import Callable, Dict, Any
  import ray
  from ray.data import Dataset
  from ray.rllib.policy import Policy
  from ray.rllib.policy.sample_batch import SampleBatch, convert_ma_batch_to_sample_batch
  from ray.rllib.utils.annotations import override, DeveloperAPI, ExperimentalAPI
  from ray.rllib.utils.typing import SampleBatchType
  from ray.rllib.offline.offline_evaluator import OfflineEvaluator
label_desc: Use image node_id 2 for calling a global function with example usage: _perturb_df(batch, index) and returns: batch