docs: def rolling_window_sequences(X, window_size, target_size, value_column, time_column):
      """
          Function that takes in a pandas.DataFrame and a window_size then creates
              output arrays that correspond to a timeseries sequence with window_size overlap.
              The output arrays can be fed into a timeseries forecasting model.
              Assumes the input is timeseries sorted.
          Args:
              X (pandas.DataFrame): a pandas dataframe which has 'timestamp'
                  and 'value' columns, and is sorted based on timestamp.
                  The timestamp column is in UNIX format (in seconds).
              window_size (int): number of values that overlap to create the sequence.
              value_column (string): name of column that has the value field.
              time_column (string): name of column that has the time field.
          Returns:
              (numpy.ndarray): contains the time series sequenced data with each
                  entry having window_size rows.
              (numpy.ndarray): acts as the label for the forecasting problem with
                  each entry having window_size rows.
              (numpy.ndarray): the corresponding timestamps series.
      """
      output_X = []
      y = []
      time = []
      for start in range(len(X) - window_size - target_size):
          end = start + window_size
          output_X.append(X.iloc[start:end][value_column].values.reshape([-1, 1]))
          y.append(X.iloc[end:end + target_size][value_column].values)
          time.append(X.iloc[end + 1][time_column])
  
      return np.asarray(output_X), np.asarray(y), np.asarray(time)