code: def fit(self, X, y=None, categorical=None):
          
          if categorical is not None:
              assert isinstance(categorical, (int, list, tuple)), "The 'categorical' \
                  argument needs to be an integer with the index of the categorical \
                  column in your data, or a list or tuple of several of them, \
                  but it is a {}.".format(type(categorical))
  
          X = pandas_to_numpy(X)
  
          random_state = check_random_state(self.random_state)
          # If self.gamma is None, gamma will be automatically determined from
          # the data. The function below returns its value.
          self._enc_cluster_centroids, self._enc_map, self.labels_, self.cost_,\
              self.n_iter_, self.gamma = k_prototypes(X,
                                                      categorical,
                                                      self.n_clusters,
                                                      self.max_iter,
                                                      self.num_dissim,
                                                      self.cat_dissim,
                                                      self.gamma,
                                                      self.init,
                                                      self.n_init,
                                                      self.verbose,
                                                      random_state,
                                                      self.n_jobs)
          return self
docs: Compute k-prototypes clustering.
  
          Parameters
          ----------
          X : array-like, shape=[n_samples, n_features]
          categorical : Index of columns that contain categorical data