class_docstr: Construct a transformer per data group. Splits data by groups from single or multiple columns and transforms
  remaining columns using the transformers corresponding to the groups.
  
  Parameters
  ----------
  transformer : scikit-learn compatible transformer
      The transformer to be applied per group.
  groups : int | str | List[int] | List[str] | None
      The column(s) of the array/dataframe to select as a grouping parameter set. If `None`, the transformer will be
      applied to the entire input without grouping.
  use_global_model : bool, default=True
      Whether or not to fall back to a general transformation in case a group is not found during `.transform()`.
  
  Attributes
  ----------
  transformers_ : scikit-learn compatible transformer | dict[..., scikit-learn compatible transformer]
      The fitted transformers per group or a single fitted transformer if `groups` is `None`.
  fallback_ : scikit-learn compatible transformer | None
      The fitted transformer to fall back to in case a group is not found during `.transform()`. Only present if
      `use_global_model` is `True`.
docstr: Transform new data `X` by transforming on each group. If a group is not found during `.transform()` and
  `use_global_model=True` the fallback transformer will be used. If `use_global_model=False` a `ValueError` will
  be raised.
  
  Parameters
  ----------
  X : array-like of shape (n_samples, n_features)
      Data to transform.
  
  Returns
  -------
  array-like of shape (n_samples, n_features)
      Data transformed per group.
docstr_tok: ["Transform","new","data","`","X","`","by","transforming","on","each","group",".","If","a","group","is","not","found","during","`",".transform","(",")","`","and","`","use_global_model=True","`","the","fallback","transformer","will","be","used",".","If","`","use_global_model=False","`","a","`","ValueError","`","will","be","raised",".","Parameters","--","--","--","--","--","X",":","array-like","of","shape","(","n_samples",",","n_features",")","Data","to","transform",".","Returns","--","--","--","-","array-like","of","shape","(","n_samples",",","n_features",")","Data","transformed","per","group","."]
code: def transform(self, X):
      """Transform new data `X` by transforming on each group. If a group is not found during `.transform()` and
      `use_global_model=True` the fallback transformer will be used. If `use_global_model=False` a `ValueError` will
      be raised.
  
      Parameters
      ----------
      X : array-like of shape (n_samples, n_features)
          Data to transform.
  
      Returns
      -------
      array-like of shape (n_samples, n_features)
          Data transformed per group.
      """
      check_is_fitted(self, ["fallback_", "transformers_"])
  
      if self.groups is None:
          return self.transformers_.transform(X)
  
      X_group, X_value = _split_groups_and_values(
          X, self.groups, **self._check_kwargs
      )
  
      return self.__transform_groups(X_group, X_value)
  
file_path: scikit-lego/sklego/meta/grouped_transformer.py
imports: import numpy
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin, clone
  from sklearn.utils.validation import check_is_fitted
  from sklego.meta._grouped_utils import _split_groups_and_values
label_desc: Use image node_id 8 for calling the GroupedTransformer obj's underlying member method code with example usage: obj.transform(X) and returns: self, self