code: def execute(cls, ctx, op):
      series = ctx[op.inputs[0].key]
      out = op.outputs[0]
      if len(op.inputs) == 2:
          arg = ctx[op.inputs[1].key]
      else:
          arg = op.arg
  
      ret = series.map(arg, na_action=op.na_action)
      if ret.dtype != out.dtype:
          ret = ret.astype(out.dtype)
      ctx[out.key] = ret
  
imports: import inspect
  from collections.abc import MutableMapping
  import numpy
  import pandas
  from ...None import opcodes
  from ...core import OutputType, recursive_tile
  from ...core.custom_log import redirect_custom_log
  from ...serialization.serializables import KeyField, AnyField, StringField
  from ...utils import has_unknown_shape, enter_current_session, quiet_stdio
  from ..core import SERIES_TYPE
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..utils import build_series
label_desc: Use image node_id 8 for calling the DataFrameMap obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types