docs: def fit_transform(self, X, y=None, **fit_params):
          """Fit all transformers, transform the data and concatenate results.
  
          Parameters
          ----------
          X : iterable or array-like, depending on transformers
              Input data to be transformed.
  
          y : array-like, shape (n_samples, ...), optional
              Targets for supervised learning.
  
          Returns
          -------
          X_t : array-like or sparse matrix, shape (n_samples, sum_n_components)
              hstack of results of transformers. sum_n_components is the
              sum of n_components (output dimension) over transformers.
          """
          self._validate_transformers()
          with Pool(self.n_jobs) as pool:
              result = pool.starmap(_fit_transform_one,
                           ((trans, weight, X[trans['col_pick']] if hasattr(trans, 'col_pick') else X, y)
                            for name, trans, weight in self._iter()))
          if not result:
              # All transformers are None
              return np.zeros((X.shape[0], 0))
          Xs, transformers = zip(*result)
          self._update_transformer_list(transformers)
          if self.concatenate:
              if any(sparse.issparse(f) for f in Xs):
                  Xs = sparse.hstack(Xs).tocsr()
              else:
                  Xs = np.hstack(Xs)
          return Xs