code: def fit(self, X):
      if len(self.columns):
          for c in self.columns:
              X[c] = X[c].astype(float)
  
          if self.scale_method == self.SCALE_NORMAL:
              self.scale.fit(X[self.columns])
          elif self.scale_method == self.SCALE_LOG_AND_NORMAL:
              self.X_min_values = np.min(X[self.columns], axis=0)
              self.scale.fit(
                  np.log(X[self.columns] - self.X_min_values + 1)
              )
  
file_path: mljar-supervised/supervised/preprocessing/scale.py
imports: import numpy
  import pandas
  from sklearn import preprocessing
label_desc: Use image node_id 2 for calling the Scale obj's underlying member method code with example usage: obj.fit(X) without return types