class_docstr: Principal Component Analysis (PCA).
  
  Parameters
  ----------
  rescale_with_mean
      Whether or not to subtract each column's mean before performing SVD.
  rescale_with_std
      Whether or not to standardize each column before performing SVD.
  n_components
      The number of principal components to compute.
  n_iter
      The number of iterations used for computing the SVD.
  copy
      Whether nor to perform the computations inplace.
  check_input
      Whether to check the coherence of the inputs or not.
code: def _scale(self, X):
      if not hasattr(self, "scaler_"):
          return X
  
      if sup_variables := X.columns.difference(
          self.feature_names_in_, sort=False
      ).tolist():
          X = np.concatenate(
              (
                  self.scaler_.transform(
                      X[self.feature_names_in_].to_numpy()
                  ),
                  preprocessing.StandardScaler(
                      copy=self.copy,
                      with_mean=self.rescale_with_mean,
                      with_std=self.rescale_with_std,
                  ).fit_transform(X[sup_variables]),
              ),
              axis=1,
          )
      else:
          X = self.scaler_.transform(X.to_numpy())
  
      return X
  
imports: from __future__ import annotations
  import functools
  import altair
  import numpy
  import pandas
  import sklearn.base
  import sklearn.utils
  from sklearn import preprocessing
  from prince import svd, utils
label_desc: Use image node_id 5 for calling the PCA obj's underlying member method code with example usage: obj._scale(X) and returns: X, X