class_docstr: Preprocess given features to scaled numerics.
  
  Parameters
  ----------
  categorical_columns : List[Hashable]
      Indicates names of categorical columns in features.
  max_num_categories : int
      Indicates the maximum number of unique categories in a single categorical column
      (rare categories will be changed to a form of "other")
docstr: Transform features into scaled numerics.
docstr_tok: ["Transform","features","into","scaled","numerics","."]
code: def transform(self, X: pd.DataFrame):
      """Transform features into scaled numerics."""
      # Impute all-nan cols to all-zero:
      X = X.copy()
      X = X.apply(ScaledNumerics._impute_whole_series_to_zero, axis=0)
  
      if self.cat_columns:
          X[self.cat_columns] = self.categorical_imputer.transform(
              X[self.cat_columns]
          )
      if self.not_cat_columns:
          X[self.not_cat_columns] = self.numeric_imputer.transform(
              X[self.not_cat_columns]
          )
          X[self.not_cat_columns] = self.scaler.transform(
              X[self.not_cat_columns]
          )
  
      X = self.rare_category_encoder.transform(X)
      X = self.one_hot_encoder.transform(X)
  
      return X
  
imports: import copy
  import warnings
  from collections import Counter
  from typing import List, Tuple, Union
  import numpy
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.impute import SimpleImputer
  from sklearn.preprocessing import MinMaxScaler
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.utils.distribution.rare_category_encoder import RareCategoryEncoder
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 3 for calling the ScaledNumerics obj's underlying member method code with example usage: obj.transform(X) and returns: X