code: def merge(self, ds, inplace=False, axis=1):
          
          if not isinstance(ds, Dataset):
              raise ValueError('Expected `Dataset`, got %s.' % ds)
  
          X_train = concat(ds.X_train, self.X_train, axis=axis)
          y_train = concat(ds.y_train, self.y_train, axis=axis)
  
          if ds.X_test is not None:
              X_test = concat(ds.X_test, self.X_test, axis=axis)
          else:
              X_test = None
  
          if ds.y_test is not None:
              y_test = concat(ds.y_test, self.y_test, axis=axis)
          else:
              y_test = None
  
          if inplace:
              self._X_train = X_train
              self._y_train = y_train
  
              if X_test is not None:
                  self._X_test = X_test
  
              if y_test is not None:
                  self._y_test = y_test
  
              return None
  
          return Dataset(X_train, y_train, X_test, y_test)
docs: Merge two datasets.
  
          Parameters
          ----------
  
          axis : {0,1}
          ds : `Dataset`
          inplace : bool, default False
  
          Returns
          -------
          `Dataset`