code: def _execute_sort_index_map(cls, ctx, op):
      a, pivots = [ctx[c.key] for c in op.inputs]
      out = op.outputs[0]
  
      if op.ascending:
          poses = a.index.searchsorted(list(pivots), side="right")
      else:
          poses = len(a) - a.index[::-1].searchsorted(
              list(pivots), side="right"
          )
      poses = (None,) + tuple(poses) + (None,)
      for i in range(op.n_partition):
          values = a.iloc[poses[i] : poses[i + 1]]
          ctx[out.key, (i,)] = values
  
imports: import os
  import numpy
  import pandas
  from ...None import opcodes
  from ...core.operand import OperandStage, MapReduceOperand
  from ...utils import lazy_import, calc_nsplits
  from ...serialization.serializables import AnyField, Int32Field, ListField, StringField, BoolField
  from ...tensor.base.psrs import PSRSOperandMixin
  from ..core import IndexValue, OutputType
  from ..utils import standardize_range_index, parse_index, is_cudf
  from ..operands import DataFrameOperandMixin, DataFrameOperand, DataFrameShuffleProxy
label_desc: Use image node_id 7 for calling the DataFramePSRSShuffle obj's underlying member method code with example usage: obj._execute_sort_index_map(cls, ctx, op) without return types