code: def build_column(self, data):
      s = data[self.col]
      replacements = {}
      col_replacements = []
      for replacement in self.cfg or []:
          value = get_replacement_value(replacement, "value")
          replacement_type = replacement.get("type")
          if replacement_type == "agg":
              replace = getattr(
                  s, replacement["replace"]
              )()  # min, max, mean, median
              if pd.isnull(replace):
                  raise Exception(
                      "Running the aggregation, {agg}, on {col} resulted in nan, this would result in a no-op."
                  )
          elif replacement_type == "col":
              col_replacements.append(
                  lambda s2: np.where(
                      s2 == value, data[replacement["replace"]], s2
                  )
              )
          else:
              replace = get_replacement_value(replacement, "replace")
          replacements[value] = replace
      final_s = s
      if len(replacements):
          final_s = final_s.replace(replacements)
      for col_r in col_replacements:
          final_s = col_r(final_s)
      return final_s
  
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 ValueReplacement obj's underlying member method code with example usage: obj.build_column(data) and returns: final_s