code: def execute(cls, ctx, op: "DataFrameCheckMonotonic"):
      in_data = ctx[op.inputs[0].key]
      if op.stage == OperandStage.map:
          is_mono = (
              in_data.is_monotonic_increasing
              if not op.decreasing
              else in_data.is_monotonic_decreasing
          )
          if op.strict and is_mono:
              is_mono = in_data.is_unique
  
          if isinstance(in_data, pd.Index):
              edge_array = np.array([in_data[0], in_data[-1]])
          else:
              edge_array = np.array([in_data.iloc[0], in_data.iloc[-1]])
  
          ctx[op.outputs[0].key] = (
              np.array([is_mono]),
              edge_array,
          )
      else:
          in_series = pd.Series(in_data[1])
          is_edge_mono = (
              in_series.is_monotonic_increasing
              if not op.decreasing
              else in_series.is_monotonic_decreasing
          )
          if op.strict and is_edge_mono:
              is_edge_mono = in_series.is_unique
          ctx[op.outputs[0].key] = in_data[0].all() and is_edge_mono
  
imports: import numpy
  import pandas
  from ...None import opcodes
  from ...core import OutputType
  from ...core.operand import OperandStage
  from ...serialization.serializables import BoolField
  from ...tensor.core import TensorOrder
  from ...tensor.merge import TensorConcatenate
  from ..operands import DataFrameOperand, DataFrameOperandMixin
label_desc: Use image node_id 6 for calling the DataFrameCheckMonotonic obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types