code: def read_data_to_df(data_path: str, **read_data_options):
      """
      read data depending on its extension and convert it to a pandas dataframe
      """
      file_ext = data_path.split(".")[-1]
      if file_ext == "csv" or file_ext == "txt":
          return (
              pd.read_csv(data_path, **read_data_options)
              if read_data_options
              else pd.read_csv(data_path)
          )
      elif file_ext == "xlsx":
          return (
              pd.read_excel(data_path, **read_data_options)
              if read_data_options
              else pd.read_excel(data_path)
          )
      elif file_ext == "json":
          return (
              pd.read_json(data_path, **read_data_options)
              if read_data_options
              else pd.read_json(data_path)
          )
      elif file_ext == "html":
          return (
              pd.read_html(data_path, **read_data_options)
              if read_data_options
              else pd.read_html(data_path)
          )
  
file_path: igel/igel/preprocessing.py
imports: import logging
  import numpy
  import pandas
  from sklearn.impute import SimpleImputer
  from sklearn.preprocessing import LabelEncoder, MinMaxScaler, OneHotEncoder, StandardScaler
label_desc: Use image node_id 1 for calling a global function with example usage: read_data_to_df(data_path) and returns: unknown, unknown, unknown, unknown