code: def transform(self, X: PIPELINE_DATA_DTYPE) -> PIPELINE_DATA_DTYPE:
      if scipy.sparse.issparse(X):
          # Sparse data should be float dtype, which means we do not need
          # to further encode it.
          return X
      if self.preprocessor is None:
          raise NotImplementedError()
      # Notice we are shifting the unseen categories during fit to 1
      # from -1, 0, ... to 0,..., cat + 1
      # This is done because Category shift requires non negative integers
      # Consider removing this if that step is removed
      return self.preprocessor.transform(X) + 1
  
file_path: auto-sklearn/autosklearn/pipeline/components/data_preprocessing/categorical_encoding/encoding.py
imports: from typing import Dict, Optional, Tuple, Union
  import numpy
  import scipy.sparse
  from ConfigSpace.configuration_space import ConfigurationSpace
  from sklearn.preprocessing import OrdinalEncoder
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.base import DATASET_PROPERTIES_TYPE, PIPELINE_DATA_DTYPE
  from autosklearn.pipeline.components.base import AutoSklearnPreprocessingAlgorithm
  from autosklearn.pipeline.constants import DENSE, INPUT, SPARSE, UNSIGNED_DATA
label_desc: Use image node_id 3 for calling the OrdinalEncoding obj's underlying member method code with example usage: obj.transform(X) and returns: unknown, X