code: def transform(self, X, y=None, override_return_df=False):
          
  
          if self.handle_missing == 'error':
              if X[self.cols].isnull().any().bool():
                  raise ValueError('Columns to be encoded can not contain null')
  
          if self._dim is None:
              raise ValueError('Must train encoder before it can be used to transform data.')
  
          # unite the input into pandas types
          X = util.convert_input(X)
  
          # then make sure that it is the right size
          if X.shape[1] != self._dim:
              raise ValueError('Unexpected input dimension %d, expected %d' % (X.shape[1], self._dim,))
  
          # if we are encoding the training data, we have to check the target
          if y is not None:
              y = util.convert_input_vector(y, X.index).astype(float)
              if X.shape[0] != y.shape[0]:
                  raise ValueError("The length of X is " + str(X.shape[0]) + " but length of y is " + str(y.shape[0]) + ".")
  
          if not self.cols:
              return X
          X = self.transform_leave_one_out(
              X, y,
              mapping=self.mapping
          )
  
          if self.drop_invariant:
              for col in self.drop_cols:
                  X.drop(col, 1, inplace=True)
  
          if self.return_df or override_return_df:
              return X
          else:
              return X.values
docs: Perform the transformation to new categorical data.
  
          Parameters
          ----------
  
          X : array-like, shape = [n_samples, n_features]
          y : array-like, shape = [n_samples] when transform by leave one out
              None, when transform without target information (such as transform test set)
  
  
  
          Returns
          -------
  
          p : array, shape = [n_samples, n_numeric + N]
              Transformed values with encoding applied.