docstr: Base class for organizing entire datasets into three :class:`BaseDataChunk` subclasses
  
  Parameters
  ----------
  data: pd.DataFrame, or None, default=None
      Initial whole dataset, comprising both input and target data
  feature_selector: List, or None, default=None
      Column names to include as input data for the dataset
  target_column: List, or None, default=None
      Column name(s) in the dataset that contain the target output data
  require_data: Boolean, default=False
      If True, `data` must be provided as a pandas DataFrame
  
  Notes
  -----
  Subclasses of `BaseDataset` should override the three chunk initializer attributes
  (`_input_type`, `_target_type`, `_prediction_type`) to a :class:`BaseDataChunk` subclass
  in order to establish callback method behavior for the data chunk attributes. Note that
  :class:`NullDataChunk` is also an acceptable value for any of the chunk initializers
docstr_tok: ["Base","class","for","organizing","entire","datasets","into","three",":","class",":","`","BaseDataChunk","`","subclasses","Parameters","--","--","--","--","--","data",":","pd.DataFrame",",","or","None",",","default=None","Initial","whole","dataset",",","comprising","both","input","and","target","data","feature_selector",":","List",",","or","None",",","default=None","Column","names","to","include","as","input","data","for","the","dataset","target_column",":","List",",","or","None",",","default=None","Column","name","(","s",")","in","the","dataset","that","contain","the","target","output","data","require_data",":","Boolean",",","default=False","If","True",",","`","data","`","must","be","provided","as","a","pandas","DataFrame","Notes","--","--","-","Subclasses","of","`","BaseDataset","`","should","override","the","three","chunk","initializer","attributes","(","`","_input_type","`",",","`","_target_type","`",",","`","_prediction_type","`",")","to","a",":","class",":","`","BaseDataChunk","`","subclass","in","order","to","establish","callback","method","behavior","for","the","data","chunk","attributes",".","Note","that",":","class",":","`","NullDataChunk","`","is","also","an","acceptable","value","for","any","of","the","chunk","initializers"]
code: def __init__(
      self,
      data: OptionalDF = None,
      feature_selector: List[str] = None,
      target_column: List[str] = None,
      require_data: bool = False,
  ):
      """Base class for organizing entire datasets into three :class:`BaseDataChunk` subclasses
  
      Parameters
      ----------
      data: pd.DataFrame, or None, default=None
          Initial whole dataset, comprising both input and target data
      feature_selector: List, or None, default=None
          Column names to include as input data for the dataset
      target_column: List, or None, default=None
          Column name(s) in the dataset that contain the target output data
      require_data: Boolean, default=False
          If True, `data` must be provided as a pandas DataFrame
  
      Notes
      -----
      Subclasses of `BaseDataset` should override the three chunk initializer attributes
      (`_input_type`, `_target_type`, `_prediction_type`) to a :class:`BaseDataChunk` subclass
      in order to establish callback method behavior for the data chunk attributes. Note that
      :class:`NullDataChunk` is also an acceptable value for any of the chunk initializers
      """
      try:
          input_ = data.copy().loc[:, feature_selector]
      except AttributeError:
          if require_data or data is not None:
              raise
          input_ = None
  
      try:
          target = data.copy().loc[:, target_column]
      except (AttributeError, KeyError, TypeError):
          target = None
  
      #################### Data Chunks ####################
      self.input: BaseDataChunk = self._input_type(input_)
      self.target: BaseDataChunk = self._target_type(target)
      self.prediction: BaseDataChunk = self._prediction_type(None)
  
imports: import pandas
  from typing import List, Optional
label_desc: Use image node_id 1 to create a new BaseDataset object from inherited base classes: BaseDataCore with example: obj = BaseDataset(data, feature_selector, target_column, require_data)