code: def apply_preprocessing(x_init, model, preprocessing=None):
      """
      Apply preprocessing on a raw dataset giving a preprocessing.
  
      Preprocessing could be :
          - a single category_encoders
          - a single ColumnTransformer
          - list with multiple category_encoders with optional (dict, list of dict)
          - list with a single ColumnTransformer with optional (dict, list of dict)
          - dict
          - list of dict
  
      Preprocessing return an error when using ColumnTransformer and category encoding in the same preprocessing,
      the category encoding must be used in the ColumnTransformer.
  
      If ColumnTransformer is used, there is an inverse transformation for each transformers,
      so a column could be multi-processed, that's why inverse colnames are prefixed by the transformers names.
  
      Parameters
      ----------
      x_init : pandas.DataFrame
          Raw dataset to apply preprocessing.
      model: model object
          model used to check the different values of target estimate predict_proba
      preprocessing : category_encoders, ColumnTransformer, list, dict, optional (default: None)
          The processing to apply to the original data
  
      Returns
      -------
      pandas.Dataframe
          return the dataframe with preprocessing.
      """
  
      if preprocessing is None:
          return x_init
      else:
          # Transform preprocessing into a list
          list_encoding = preprocessing_tolist(preprocessing)
          # Check encoding are supported
          use_ct, use_ce = check_transformers(list_encoding)
          # Apply Transform
          for encoding in list_encoding:
              if use_ct:
                  x_init = transform_ct(x_init, model, encoding)
              else:
                  x_init = transform_ce(x_init, encoding)
          return x_init
  
file_path: shapash/shapash/utils/transform.py
imports: from shapash.utils.columntransformer_backend import columntransformer, inv_transform_ct, supported_sklearn, transform_ct, get_col_mapping_ct
  from shapash.utils.category_encoder_backend import transform_ce, inv_transform_ce, supported_category_encoder, get_col_mapping_ce
  import re
  import numpy
  import pandas
label_desc: Use image node_id 2 for calling a global function with example usage: apply_preprocessing(x_init, model, preprocessing) and returns: x_init, x_init