code: def load_dataset_as_dataframe(
      data_file, columns_metadata, has_header=False
  ):
      """
      returns dict with 'features', 'target' keys
      """
  
      if "Label" not in columns_metadata["column_type_to_indices"]:
          raise Exception("no target in dataset")
  
      df = read_csv(
          data_file, sep="\t", header=1 if has_header else None
      )
  
      df.columns = columns_metadata["column_names"]
      df = df.astype(columns_metadata["column_dtypes"])
  
      result = {}
      result["target"] = df.iloc[
          :, columns_metadata["column_type_to_indices"]["Label"][0]
      ].values
      df.drop(
          columns=df.columns[
              columns_metadata["non_feature_column_indices"]
          ],
          inplace=True,
      )
      result["features"] = df
  
      return result
  
imports: import collections
  import csv
  import json
  import os
  import random
  import shutil
  import sys
  from pandas import read_csv, DataFrame
  from copy import deepcopy
  import numpy
  from catboost.utils import read_cd
label_desc: Use image node_id 12 for calling a global function with example usage: load_dataset_as_dataframe(data_file, columns_metadata, has_header) and returns: result