code: def build_column(self, data):
      imputer_type = self.cfg["type"]
      if imputer_type == "iterative":
          try:
              from sklearn.experimental import (
                  enable_iterative_imputer,
              )  # noqa
              from sklearn.impute import IterativeImputer
          except ImportError:
              raise Exception(
                  "You must have at least scikit-learn 0.21.0 installed in order to use the Iterative Imputer!"
              )
          imputer = IterativeImputer()
      elif imputer_type == "knn":
          try:
              from sklearn.impute import KNNImputer
          except ImportError:
              raise Exception(
                  "You must have at least scikit-learn 0.22.0 installed in order to use the Iterative Imputer!"
              )
          n_neighbors = self.cfg.get("n_neighbors") or 2
          imputer = KNNImputer(n_neighbors=n_neighbors)
      elif imputer_type == "simple":
          try:
              from sklearn.impute import SimpleImputer
          except ImportError:
              raise Exception(
                  "You must have at least scikit-learn 0.20.0 installed in order to use the Iterative Imputer!"
              )
          imputer = SimpleImputer()
      else:
          raise NotImplementedError(
              "'{}' sklearn imputer not implemented yet!".format(
                  imputer_type
              )
          )
      output = imputer.fit_transform(data[[self.col]])
      return pd.DataFrame(output, columns=[self.col], index=data.index)[
          self.col
      ]
  
imports: import re
  import numpy
  import pandas
  from six import string_types
  import dtale.global_state
  from dtale.column_builders import ReplaceColumnBuilder
  from dtale.utils import classify_type, find_dtype, dict_merge
label_desc: Use image node_id 2 for calling the ImputerReplacement obj's underlying member method code with example usage: obj.build_column(data) and returns: pd