class_docstr: Base class for an estimator of causal effect.
  
  Subclasses implement different estimation methods. All estimation methods are in the package "dowhy.causal_estimators"
class_docstr_tok: ["Base","class","for","an","estimator","of","causal","effect",".","Subclasses","implement","different","estimation","methods",".","All","estimation","methods","are","in","the","package","``","dowhy.causal_estimators","''"]
code: def target_units_tostr(self):
      s = ""
      if type(self._target_units) is str:
          s += self._target_units
      elif callable(self._target_units):
          s += "Data subset defined by a function"
      elif isinstance(self._target_units, pd.DataFrame):
          s += "Data subset provided as a data frame"
      return s
  
imports: import copy
  import logging
  from collections import namedtuple
  from typing import Dict, List, Optional, Union
  import numpy
  import pandas
  import sympy
  from sklearn.utils import resample
  import dowhy.interpreters
  from dowhy.causal_identifier.identified_estimand import IdentifiedEstimand
  from dowhy.utils.api import parse_state
label_desc: Use image node_id 25 for calling the CausalEstimator obj's underlying member method code with example usage: obj.target_units_tostr() and returns: s