class_docstr: Base Data type class
class_docstr_tok: ["Base","Data","type","class"]
docstr: Import data from ``csv``.
  
  Args:
      file_path: the path to the ``CSV`` with data.
      columns_to_drop: the names of columns that should be dropped.
      delimiter: the delimiter to separate the columns.
      task: the :obj:`Task` to solve with the data.
      data_type: the type of the data. Possible values are listed at :class:`DataTypesEnum`.
      target_columns: name of the target column (the last column if empty and no target if ``None``).
      index_col: name or index of the column to use as the :obj:`Data.idx`.
  
          If ``None``, then check the first column's name and use it as index if succeeded
          (see the param ``possible_idx_keywords``).
  
          Set ``False`` to skip the check and rearrange a new integer index.
      possible_idx_keywords: lowercase keys to find. If the first data column contains one of the keys,
          it is used as index. See the :const:`POSSIBLE_TABULAR_IDX_KEYWORDS` for the list of default keywords.
  
  Returns:
      data
code: def from_csv(
      cls,
      file_path: PathType,
      delimiter: str = ",",
      task: Union[Task, str] = "classification",
      data_type: DataTypesEnum = DataTypesEnum.table,
      columns_to_drop: Optional[List[Union[str, int]]] = None,
      target_columns: Union[str, List[Union[str, int]]] = "",
      index_col: Optional[Union[str, int]] = None,
      possible_idx_keywords: Optional[List[str]] = None,
  ) -> InputData:
      """Import data from ``csv``.
  
      Args:
          file_path: the path to the ``CSV`` with data.
          columns_to_drop: the names of columns that should be dropped.
          delimiter: the delimiter to separate the columns.
          task: the :obj:`Task` to solve with the data.
          data_type: the type of the data. Possible values are listed at :class:`DataTypesEnum`.
          target_columns: name of the target column (the last column if empty and no target if ``None``).
          index_col: name or index of the column to use as the :obj:`Data.idx`.\n
              If ``None``, then check the first column's name and use it as index if succeeded
              (see the param ``possible_idx_keywords``).\n
              Set ``False`` to skip the check and rearrange a new integer index.
          possible_idx_keywords: lowercase keys to find. If the first data column contains one of the keys,
              it is used as index. See the :const:`POSSIBLE_TABULAR_IDX_KEYWORDS` for the list of default keywords.
  
      Returns:
          data
      """
      possible_idx_keywords = (
          possible_idx_keywords or POSSIBLE_TABULAR_IDX_KEYWORDS
      )
      if isinstance(task, str):
          task = Task(TaskTypesEnum(task))
  
      df = get_df_from_csv(
          file_path,
          delimiter,
          index_col,
          possible_idx_keywords,
          columns_to_drop=columns_to_drop,
      )
      idx = df.index.to_numpy()
  
      if not target_columns:
          features_names = df.columns.to_numpy()[:-1]
      else:
          features_names = df.drop(
              target_columns, axis=1
          ).columns.to_numpy()
  
      features, target = process_target_and_features(df, target_columns)
  
      return InputData(
          idx=idx,
          features=features,
          target=target,
          task=task,
          data_type=data_type,
          features_names=features_names,
      )
  
imports: from __future__ import annotations
  import glob
  import os
  from copy import copy, deepcopy
  from dataclasses import dataclass, field
  from typing import Any, Iterable, List, Optional, Tuple, Union
  import numpy
  import pandas
  from golem.core.log import default_log
  from golem.utilities.requirements_notificator import warn_requirement
  from fedot.core.data.array_utilities import atleast_2d
  from fedot.core.data.load_data import JSONBatchLoader, TextBatchLoader
  from fedot.core.data.supplementary_data import SupplementaryData
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 4 for calling the Data obj's underlying member method code with example usage: obj.from_csv(cls, file_path, delimiter, task, data_type, columns_to_drop, target_columns, index_col, possible_idx_keywords) and returns: InputData