docs: def featurize(equity_data, n_sessions, **kwargs):
      """
      Generate a raw (unnormalized) feature set from the input data.
      The value at `column` on the given date is taken
      as a feature, and each row contains values for n_sessions
  
      Parameters
      -----------
      equity_data : DataFrame
          data from which to generate features
  
      n_sessions : int
          number of sessions to use as features
  
      selection : str, default: 'Adj Close'
          column of `equity_data` from which to generate features.
  
      columns : list, default: ``map(str, range((-n_sessions + 1), 1))``
          column names for output DataFrame. Default will look like:
          ['-5', '-4', '-3', '-2', '-1', '0'].
  
      Returns
      ----------
      out : DataFrame
          Each row is a sequence of `n_sessions` session values where
          the last column matches the value on the date specified by
          the DataFrame index.
  
      Examples
      --------
      >>> pn.featurize(equity_data, n_sessions, **kwargs)
      """
      #Benchmarking
      #>>> s = 'from __main__ import data\nimport datetime as dt\n'
      #>>> timeit.timeit('data.featurize(data.get("ge", dt.date(1960, 1, 1), 
      #        dt.date(2014, 12, 31)), 256)', setup=s, number=1)
      #1.6771750450134277
      columns = kwargs.get('columns', map(str, range(-n_sessions + 1, 1)))
      selection = kwargs.get('selection', 'Adj Close')
      # empty DataFrame with desired index and column labels
      features = pd.DataFrame(index=equity_data.index[(n_sessions - 1):],
              columns=columns, dtype='float64')
      values = equity_data[selection].values
      for i in range(n_sessions - 1):
          features.iloc[:, i] = values[i:(-n_sessions + i + 1)]
      features.iloc[:, n_sessions - 1] = values[(n_sessions - 1):]
      return features