'Transform X separately by each transformer, concatenate results.
Parameters
X : iterable or array-like, depending on transformers
Input data to be transformed.
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.'

def transform(self, X):

    Xs = Parallel(n_jobs=self.n_jobs)((delayed(_transform_one)(trans, weight, X) for (name, trans, weight) in self._iter()))
    if (not Xs):
        return np.zeros((X.shape[0], 0))
    if any((sparse.issparse(f) for f in Xs)):
        Xs = sparse.hstack(Xs).tocsr()
    else:
        Xs = np.hstack(Xs)
    return Xs
