code: def execute(cls, ctx, op: "DataFrameDuplicated"):
      if op.method is None:
          # one chunk
          cls._execute_chunk(ctx, op)
      elif op.method == "tree":
          # tree
          if op.stage == OperandStage.map:
              cls._execute_tree_map(ctx, op)
          elif op.stage == OperandStage.combine:
              cls._execute_tree_combine(ctx, op)
          else:
              assert op.stage == OperandStage.agg
              cls._execute_tree_agg(ctx, op)
      elif op.method == "subset_tree":
          # subset tree
          if op.stage == OperandStage.map:
              cls._execute_subset_tree_map(ctx, op)
          elif op.stage == OperandStage.combine:
              cls._execute_subset_tree_combine(ctx, op)
          elif op.stage == OperandStage.agg:
              cls._execute_subset_tree_agg(ctx, op)
          else:
              # post
              cls._execute_subset_tree_post(ctx, op)
      else:
          assert op.method == "shuffle"
          if op.stage == OperandStage.map:
              cls._execute_shuffle_map(ctx, op)
          elif op.reducer_phase == "drop_duplicates":
              cls._execute_shuffle_reduce(ctx, op)
          else:
              assert op.reducer_phase == "put_back"
              cls._execute_shuffle_put_back(ctx, op)
  
imports: import numpy
  from ...None import opcodes
  from ...core import OutputType
  from ...core.operand import OperandStage
  from ..utils import gen_unknown_index_value, hash_dataframe_on
  from ._duplicate import DuplicateOperand, validate_subset
label_desc: Use image node_id 19 for calling the DataFrameDuplicated obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types