code: def fit(self, X, y):
          
          self.target_encoders = [None] * X.shape[1]
          self.target_mean = y.mean()
  
          for i, col in enumerate(X.columns):
              self.target_encoders[i] = self._get_target_encoder(X[col], y)
  
          return self
docs: Encode categorical columns into average target values.
          Args:
              X (pandas.DataFrame): categorical columns to encode
              y (pandas.Series): the target column
          Returns:
              X (pandas.DataFrame): encoded columns