code: def _execute_map(cls, ctx, op: "DataFrameEwmAgg"):
      try:
          cls._exec_cache[op.key] = dict()
  
          super()._execute_map(ctx, op)
          if op.output_agg:
              in_data = ctx[op.inputs[0].key]
              summaries = list(ctx[op.outputs[1].key])
  
              if op.alpha_ignore_na:
                  in_count = in_data.count()
                  if not isinstance(in_count, pd.Series):
                      in_count = pd.Series([in_count])
                  summary = in_count
                  if in_data.ndim == 2:
                      summary = in_count.to_frame().T
                  summary.index = summaries[-1].index
              else:
                  remain_counts = (
                      in_data.notna()[::-1].to_numpy().argmax(axis=0)
                  )
                  if in_data.ndim > 1:
                      remain_counts = remain_counts.reshape(
                          (1, len(in_data.columns))
                      )
                      summary = pd.DataFrame(
                          remain_counts,
                          columns=in_data.columns,
                          index=summaries[-1].index,
                      )
                  else:
                      summary = pd.Series(
                          remain_counts, index=summaries[-1].index
                      )
              summaries.insert(-1, summary)
  
              ctx[op.outputs[1].key] = tuple(summaries)
      finally:
          cls._exec_cache.pop(op.key, None)
  
imports: from collections import namedtuple
  import numpy
  import pandas
  from ....None import opcodes
  from ....serialization.serializables import BoolField, Float64Field
  from ..aggregation import BaseDataFrameExpandingAgg
label_desc: Use image node_id 12 for calling the DataFrameEwmAgg obj's underlying member method code with example usage: obj._execute_map(cls, ctx, op) without return types