class_docstr: Pull calculation based on reference median and mad
docstr: Initialize an instance of HistComparer.
  
  :param str reference_key: key of input data to read from data store
  :param str assign_to_key: key of output data to store in data store
  :param str store_key: key of the output data to store in the datastore (optional)
  :param list features: list of features to calculate pull for.
  :param str suffix_mean: suffix of mean. mean column = metric + suffix_mean
  :param str suffix_std: suffix of std. std column = metric + suffix_std
  :param str suffix_pull: suffix of pull. pull column = metric + suffix_pull
  :param args: (tuple, optional): residual args passed on to mean and std functions
  :param kwargs: (dict, optional): residual kwargs passed on to mean and std functions
docstr_tok: ["Initialize","an","instance","of","HistComparer",".",":","param","str","reference_key",":","key","of","input","data","to","read","from","data","store",":","param","str","assign_to_key",":","key","of","output","data","to","store","in","data","store",":","param","str","store_key",":","key","of","the","output","data","to","store","in","the","datastore","(","optional",")",":","param","list","features",":","list","of","features","to","calculate","pull","for",".",":","param","str","suffix_mean",":","suffix","of","mean",".","mean","column","=","metric","+","suffix_mean",":","param","str","suffix_std",":","suffix","of","std",".","std","column","=","metric","+","suffix_std",":","param","str","suffix_pull",":","suffix","of","pull",".","pull","column","=","metric","+","suffix_pull",":","param","args",":","(","tuple",",","optional",")",":","residual","args","passed","on","to","mean","and","std","functions",":","param","kwargs",":","(","dict",",","optional",")",":","residual","kwargs","passed","on","to","mean","and","std","functions"]
code: def __init__(
      self,
      reference_key,
      assign_to_key,
      store_key=None,
      features=None,
      suffix_mean: str = "_ref_mean",
      suffix_std: str = "_ref_std",
      suffix_pull: str = "_ref_pull",
      *args,
      **kwargs,
  ) -> None:
      """Initialize an instance of HistComparer.
  
      :param str reference_key: key of input data to read from data store
      :param str assign_to_key: key of output data to store in data store
      :param str store_key: key of the output data to store in the datastore (optional)
      :param list features: list of features to calculate pull for.
      :param str suffix_mean: suffix of mean. mean column = metric + suffix_mean
      :param str suffix_std: suffix of std. std column = metric + suffix_std
      :param str suffix_pull: suffix of pull. pull column = metric + suffix_pull
      :param args: (tuple, optional): residual args passed on to mean and std functions
      :param kwargs: (dict, optional): residual kwargs passed on to mean and std functions
      """
  
      def df_median(df):
          if isinstance(df, pd.DataFrame):
              df = df.select_dtypes([np.number]).dropna(
                  axis=1, how="all"
              )
          return df.median()
  
      super().__init__(
          df_median,
          mad,
          reference_key,
          assign_to_key,
          store_key,
          suffix_mean,
          suffix_std,
          suffix_pull,
          features,
          *args,
          **kwargs,
      )
      self.reference_key = reference_key
      self.assign_to_key = assign_to_key
  
imports: import numpy
  import pandas
  from popmon.analysis.apply_func import ApplyFunc
  from popmon.analysis.functions import expanding_mean, expanding_std, pull, rolling_mean, rolling_std
  from popmon.base import Pipeline
  from popmon.stats.numpy import mad
label_desc: Use image node_id 1 to create a new RefMedianMadPullCalculator object from inherited base classes: PullCalculator with example: obj = RefMedianMadPullCalculator(reference_key, assign_to_key, store_key, features, suffix_mean, suffix_std, suffix_pull)