code: def _execute_combine(cls, ctx, op: "BaseDataFrameExpandingAgg"):
      out_df = op.outputs[0]
      local_data = ctx[op.inputs[0].key]
      local_data_dict = dict(zip(op.map_groups.keys(), local_data))
  
      func_to_aggs = OrderedDict()
  
      if len(op.inputs) == 1:
          pred_record_count = 0
          for func_name, func_sources in op.combine_sources.items():
              func_str = op.combine_funcs[func_name]
              func_cols = op.combine_columns[func_name]
              if func_cols is None:
                  local_inputs = [
                      local_data_dict[src] for src in func_sources
                  ]
              else:
                  local_inputs = [
                      local_data_dict[src][func_cols]
                      for src in func_sources
                  ]
  
              func = op.key_to_funcs[func_str]
              func_to_aggs[func_name] = cls._execute_combine_function(
                  op, func, None, local_inputs, func_cols
              )
      else:
          pred_data = ctx[op.inputs[1].key]
          pred_record_count = pred_data[-1].sum()
          pred_data_dict = dict(zip(op.map_groups.keys(), pred_data))
  
          for func_name, func_sources in op.combine_sources.items():
              func_str = op.combine_funcs[func_name]
              func_cols = op.combine_columns[func_name]
              if func_cols is None:
                  local_inputs = [
                      local_data_dict[src] for src in func_sources
                  ]
                  pred_inputs = [
                      pred_data_dict[src] for src in func_sources
                  ]
              else:
                  local_inputs = [
                      local_data_dict[src][func_cols]
                      for src in func_sources
                  ]
                  pred_inputs = [
                      pred_data_dict[src][func_cols]
                      for src in func_sources
                  ]
  
              func = op.key_to_funcs[func_str]
              func_to_aggs[func_name] = cls._execute_combine_function(
                  op, func, pred_inputs, local_inputs, func_cols
              )
  
      if op.min_periods_func_name is not None:
          valid_counts = func_to_aggs.pop(op.min_periods_func_name)
          invalid_poses = valid_counts < op.min_periods
          for func_name in func_to_aggs.keys():
              if func_name == "count":
                  if (
                      not op.count_always_valid
                      and pred_record_count < op.min_periods - 1
                  ):
                      try:
                          func_to_aggs[func_name].iloc[
                              : op.min_periods - pred_record_count - 1
                          ] = np.nan
                      except ValueError:
                          func_to_aggs[func_name] = func_to_aggs[
                              func_name
                          ].copy()
                          func_to_aggs[func_name].iloc[
                              : op.min_periods - pred_record_count - 1
                          ] = np.nan
              else:
                  func_to_aggs[func_name][invalid_poses] = np.nan
  
      for func_name, agg_df in func_to_aggs.items():
          if out_df.ndim == 2 and agg_df.ndim == 1:
              agg_df.name = func_name
              agg_df = func_to_aggs[func_name] = pd.DataFrame(agg_df)
          cls._append_func_name_index(op, agg_df, func_name)
  
      if len(func_to_aggs) == 1:
          val = list(func_to_aggs.values())[0]
      else:
          out_df = op.outputs[0]
          val = pd.concat(list(func_to_aggs.values()), axis=1 - op.axis)
  
      if out_df.ndim > 1:
          val = val.reindex(
              out_df.columns_value.to_pandas(),
              axis=1 - op.axis,
              copy=False,
          )
      else:
          val.name = out_df.name
      ctx[op.outputs[0].key] = val
  
imports: from collections import namedtuple, OrderedDict
  from collections.abc import Iterable
  from typing import Dict
  import numpy
  import pandas
  from ...core.operand import OperandStage
  from ...serialization.serializables import AnyField, BoolField, Int32Field, Int64Field, DictField, StringField
  from ...utils import tokenize
  from ..core import DATAFRAME_TYPE
  from ..merge import DataFrameConcat
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..utils import build_df, parse_index, build_empty_series, filter_dtypes_by_index
label_desc: Use image node_id 28 for calling the BaseDataFrameExpandingAgg obj's underlying member method code with example usage: obj._execute_combine(cls, ctx, op) without return types