code: def create(self, dataset, config, training_set_metadata) -> Dataset:
      return PandasDataset(
          dataset,
          get_proc_features(config),
          training_set_metadata.get(DATA_TRAIN_HDF5_FP),
      )
  
imports: from __future__ import annotations
  import contextlib
  from typing import Iterable, TYPE_CHECKING
  import numpy
  from pandas import DataFrame
  from ludwig.constants import PREPROCESSING, TRAINING
  from ludwig.data.batcher.base import Batcher
  from ludwig.data.batcher.random_access import RandomAccessBatcher
  from ludwig.data.dataset.base import Dataset, DatasetManager
  from ludwig.data.sampler import DistributedSampler
  from ludwig.distributed import DistributedStrategy
  from ludwig.features.base_feature import BaseFeature
  from ludwig.utils.data_utils import DATA_TRAIN_HDF5_FP, load_hdf5, save_hdf5
  from ludwig.utils.dataframe_utils import from_numpy_dataset, to_numpy_dataset, to_scalar_df
  from ludwig.utils.defaults import default_random_seed
  from ludwig.utils.fs_utils import download_h5
  from ludwig.utils.misc_utils import get_proc_features
label_desc: Use image node_id 2 for calling the PandasDatasetManager obj's underlying member method code with example usage: obj.create(dataset, config, training_set_metadata) and returns: PandasDataset