class_docstr: Desc: Data preprocessing,
code: def data_preprocess(self, df_data):
      feature_name = [
          n
          for n in df_data.columns
          if "Patv" not in n
          and "Day" not in n
          and "Tmstamp" not in n
          and "TurbID" not in n
      ]
      feature_name.append("Patv")
  
      new_df_data = df_data[feature_name]
  
      log.info("adding time")
      t = df_data["Tmstamp"].apply(func_add_t)
      new_df_data.insert(0, "time", t)
  
      weekday = df_data["Day"].apply(lambda x: x % 7)
      new_df_data.insert(0, "weekday", weekday)
  
      pd.set_option("mode.chained_assignment", None)
      raw_df_data = new_df_data
      new_df_data = new_df_data.replace(to_replace=np.nan, value=0)
  
      return new_df_data, raw_df_data
  
imports: import os
  import time
  import datetime
  import numpy
  import pandas
  import paddle
  from paddle.io import Dataset
  import pgl
  from pgl.utils.logger import log
label_desc: Use image node_id 3 for calling the TestPGL4WPFDataset obj's underlying member method code with example usage: obj.data_preprocess(df_data) and returns: new_df_data,  raw_df_data