docstr: Initialize tsdataset(s) from pandas dataframe.
  
  :param df: a pandas dataframe for your raw time series data.
  :param dt_col: a str indicates the col name of datetime
         column in the input data frame, the dt_col must be sorted
         from past to latest respectively for each id.
  :param target_col: a str or list indicates the col name of target column
         in the input data frame.
  :param id_col: (optional) a str indicates the col name of dataframe id. If
         it is not explicitly stated, then the data is interpreted as only
         containing a single id.
  :param extra_feature_col: (optional) a str or list indicates the col name
         of extra feature columns that needs to predict the target column.
  :param with_split: (optional) bool, states if we need to split the dataframe
         to train, validation and test set. The value defaults to False.
  :param val_ratio: (optional) float, validation ratio. Only effective when
         with_split is set to True. The value defaults to 0.
  :param test_ratio: (optional) float, test ratio. Only effective when with_split
         is set to True. The value defaults to 0.1.
  :param repair: a bool indicates whether automaticly repair low quality data,
         which may call .impute()/.resample() or modify datetime column on dataframe.
         The value defaults to False.
  :param deploy_mode: a bool indicates whether to use deploy mode, which will be used in
         production environment to reduce the latency of data processing. The value
         defaults to False.
  
  :return: a TSDataset instance when with_split is set to False,
           three TSDataset instances when with_split is set to True.
  
  Create a tsdataset instance by:
  
  >>> # Here is a df example:
  >>> # id        datetime      value   "extra feature 1"   "extra feature 2"
  >>> # 00        2019-01-01    1.9     1                   2
  >>> # 01        2019-01-01    2.3     0                   9
  >>> # 00        2019-01-02    2.4     3                   4
  >>> # 01        2019-01-02    2.6     0                   2
  >>> tsdataset = TSDataset.from_pandas(df, dt_col="datetime",
  >>>                                   target_col="value", id_col="id",
  >>>                                   extra_feature_col=["extra feature 1",
  >>>                                                      "extra feature 2"])
docstr_tok: ["Initialize","tsdataset","(","s",")","from","pandas","dataframe",".",":","param","df",":","a","pandas","dataframe","for","your","raw","time","series","data",".",":","param","dt_col",":","a","str","indicates","the","col","name","of","datetime","column","in","the","input","data","frame",",","the","dt_col","must","be","sorted","from","past","to","latest","respectively","for","each","id",".",":","param","target_col",":","a","str","or","list","indicates","the","col","name","of","target","column","in","the","input","data","frame",".",":","param","id_col",":","(","optional",")","a","str","indicates","the","col","name","of","dataframe","id",".","If","it","is","not","explicitly","stated",",","then","the","data","is","interpreted","as","only","containing","a","single","id",".",":","param","extra_feature_col",":","(","optional",")","a","str","or","list","indicates","the","col","name","of","extra","feature","columns","that","needs","to","predict","the","target","column",".",":","param","with_split",":","(","optional",")","bool",",","states","if","we","need","to","split","the","dataframe","to","train",",","validation","and","test","set",".","The","value","defaults","to","False",".",":","param","val_ratio",":","(","optional",")","float",",","validation","ratio",".","Only","effective","when","with_split","is","set","to","True",".","The","value","defaults","to","0.",":","param","test_ratio",":","(","optional",")","float",",","test","ratio",".","Only","effective","when","with_split","is","set","to","True",".","The","value","defaults","to","0.1.",":","param","repair",":","a","bool","indicates","whether","automaticly","repair","low","quality","data",",","which","may","call",".impute","(",")","\/.resample","(",")","or","modify","datetime","column","on","dataframe",".","The","value","defaults","to","False",".",":","param","deploy_mode",":","a","bool","indicates","whether","to","use","deploy","mode",",","which","will","be","used","in","production","environment","to","reduce","the","latency","of","data","processing",".","The","value","defaults","to","False",".",":","return",":","a","TSDataset","instance","when","with_split","is","set","to","False",",","three","TSDataset","instances","when","with_split","is","set","to","True",".","Create","a","tsdataset","instance","by",":",">",">",">","#","Here","is","a","df","example",":",">",">",">","#","id","datetime","value","``","extra","feature","1","''","``","extra","feature","2","''",">",">",">","#","00","2019-01-01","1.9","1","2",">",">",">","#","01","2019-01-01","2.3","0","9",">",">",">","#","00","2019-01-02","2.4","3","4",">",">",">","#","01","2019-01-02","2.6","0","2",">",">",">","tsdataset","=","TSDataset.from_pandas","(","df",",","dt_col=","''","datetime","''",",",">",">",">","target_col=","''","value","''",",","id_col=","''","id","''",",",">",">",">","extra_feature_col=","[","``","extra","feature","1","''",",",">",">",">","``","extra","feature","2","''","]",")"]
code: def from_pandas(
      df,
      dt_col,
      target_col,
      id_col=None,
      extra_feature_col=None,
      with_split=False,
      val_ratio=0,
      test_ratio=0.1,
      repair=False,
      deploy_mode=False,
  ):
      """
      Initialize tsdataset(s) from pandas dataframe.
  
      :param df: a pandas dataframe for your raw time series data.
      :param dt_col: a str indicates the col name of datetime
             column in the input data frame, the dt_col must be sorted
             from past to latest respectively for each id.
      :param target_col: a str or list indicates the col name of target column
             in the input data frame.
      :param id_col: (optional) a str indicates the col name of dataframe id. If
             it is not explicitly stated, then the data is interpreted as only
             containing a single id.
      :param extra_feature_col: (optional) a str or list indicates the col name
             of extra feature columns that needs to predict the target column.
      :param with_split: (optional) bool, states if we need to split the dataframe
             to train, validation and test set. The value defaults to False.
      :param val_ratio: (optional) float, validation ratio. Only effective when
             with_split is set to True. The value defaults to 0.
      :param test_ratio: (optional) float, test ratio. Only effective when with_split
             is set to True. The value defaults to 0.1.
      :param repair: a bool indicates whether automaticly repair low quality data,
             which may call .impute()/.resample() or modify datetime column on dataframe.
             The value defaults to False.
      :param deploy_mode: a bool indicates whether to use deploy mode, which will be used in
             production environment to reduce the latency of data processing. The value
             defaults to False.
  
      :return: a TSDataset instance when with_split is set to False,
               three TSDataset instances when with_split is set to True.
  
      Create a tsdataset instance by:
  
      >>> # Here is a df example:
      >>> # id        datetime      value   "extra feature 1"   "extra feature 2"
      >>> # 00        2019-01-01    1.9     1                   2
      >>> # 01        2019-01-01    2.3     0                   9
      >>> # 00        2019-01-02    2.4     3                   4
      >>> # 01        2019-01-02    2.6     0                   2
      >>> tsdataset = TSDataset.from_pandas(df, dt_col="datetime",
      >>>                                   target_col="value", id_col="id",
      >>>                                   extra_feature_col=["extra feature 1",
      >>>                                                      "extra feature 2"])
      """
  
      if not deploy_mode:
          _check_type(df, "df", pd.DataFrame)
          tsdataset_df = df.copy(deep=True)
      else:
          tsdataset_df = df
  
      target_col = _to_list(
          target_col, name="target_col", deploy_mode=deploy_mode
      )
      feature_col = _to_list(
          extra_feature_col,
          name="extra_feature_col",
          deploy_mode=deploy_mode,
      )
  
      if id_col is None:
          tsdataset_df[_DEFAULT_ID_COL_NAME] = _DEFAULT_ID_PLACEHOLDER
          id_col = _DEFAULT_ID_COL_NAME
  
      if with_split:
          tsdataset_dfs = split_timeseries_dataframe(
              df=tsdataset_df,
              id_col=id_col,
              val_ratio=val_ratio,
              test_ratio=test_ratio,
          )
          return [
              TSDataset(
                  data=tsdataset_dfs[i],
                  repair=repair,
                  id_col=id_col,
                  dt_col=dt_col,
                  target_col=target_col,
                  feature_col=feature_col,
                  deploy_mode=deploy_mode,
              )
              for i in range(3)
          ]
  
      return TSDataset(
          data=tsdataset_df,
          repair=repair,
          id_col=id_col,
          dt_col=dt_col,
          target_col=target_col,
          feature_col=feature_col,
          deploy_mode=deploy_mode,
      )
  
imports: import pandas
  import numpy
  import functools
  import logging
  from bigdl.chronos.data.utils.feature import generate_dt_features, generate_global_features
  from bigdl.chronos.data.utils.impute import impute_timeseries_dataframe
  from bigdl.chronos.data.utils.deduplicate import deduplicate_timeseries_dataframe
  from bigdl.chronos.data.utils.roll import roll_timeseries_dataframe
  from bigdl.chronos.data.utils.time_feature import time_features, gen_time_enc_arr
  from bigdl.chronos.data.utils.scale import unscale_timeseries_numpy, scale_timeseries_numpy
  from bigdl.chronos.data.utils.resample import resample_timeseries_dataframe
  from bigdl.chronos.data.utils.split import split_timeseries_dataframe
  from bigdl.chronos.data.utils.cycle_detection import cycle_length_est
  from bigdl.chronos.data.utils.quality_inspection import quality_check_timeseries_dataframe, _abnormal_value_repair
  from bigdl.chronos.data.utils.utils import _to_list, _check_type, _check_col_within, _check_col_no_na, _check_is_aligned, _check_dt_is_sorted
label_desc: Use image node_id 2 for calling the TSDataset obj's underlying member method code with example usage: obj.from_pandas(df, dt_col, target_col, id_col, extra_feature_col, with_split, val_ratio, test_ratio, repair, deploy_mode) and returns: TSDataset, unknown