class_docstr: A ColumnSelector2D selects column in a sequence.
  
  It can be used to select:
  
  - a single column,
  - a range of columns,
  - a slice of columns,
  - a list of columns.
  
  The columns are expected to be integers.
  A special case is a string, which will be used as
  a pandas DataFrame column name.
class_docstr_tok: ["A","ColumnSelector2D","selects","column","in","a","sequence",".","It","can","be","used","to","select",":","-","a","single","column",",","-","a","range","of","columns",",","-","a","slice","of","columns",",","-","a","list","of","columns",".","The","columns","are","expected","to","be","integers",".","A","special","case","is","a","string",",","which","will","be","used","as","a","pandas","DataFrame","column","name","."]
code: def __init__(self, columns_selection: ColumnSelectionType):
      super().__init__()
      if isinstance(columns_selection, range):
          columns_selection = slice(
              columns_selection.start,
              columns_selection.stop,
              columns_selection.step,
          )
      elif isinstance(columns_selection, int):
          columns_selection = slice(
              columns_selection, columns_selection + 1
          )
  
      self.columns_selection = columns_selection
  
imports: from operator import itemgetter
  from typing import List, Tuple, Union, Iterable
  import numpy
  from neuraxle.base import MetaStep, BaseTransformer
  from neuraxle.pipeline import Pipeline
  from neuraxle.steps.loop import ForEach
  from neuraxle.union import FeatureUnion
label_desc: Use image node_id 1 to create a new ColumnSelector2D object from inherited base classes: BaseTransformer with example: obj = ColumnSelector2D(columns_selection)