code: def summarize_full_df(full_df: pd.DataFrame) -> pd.DataFrame:
      # Get the names of all algorithms which have full results
      algs = [
          col[len("sMAPE") :]
          for col in full_df.columns
          if col.startswith("sMAPE") and not full_df[col].isna().any()
      ]
      summary_df = pd.DataFrame({alg.lstrip("_"): [] for alg in algs})
  
      # Compute pooled (per time series) mean/median sMAPE, RMSE
      mean_smape, med_smape, mean_rmse, med_rmse = [
          [] for _ in range(4)
      ]
  
      for ts_name in np.unique(full_df.name):
          ts = full_df[full_df.name == ts_name]
          # append smape
          smapes = ts[[f"sMAPE{alg}" for alg in algs]]
          mean_smape.append(smapes.mean(axis=0).values)
          med_smape.append(smapes.median(axis=0).values)
          # append rmse
          rmses = ts[[f"RMSE{alg}" for alg in algs]]
          mean_rmse.append(rmses.mean(axis=0).values)
          med_rmse.append(rmses.median(axis=0).values)
  
      # Add mean/median loglifts to the summary dataframe
      summary_df.loc["mean_sMAPE"] = np.mean(mean_smape, axis=0)
      summary_df.loc["median_sMAPE"] = np.median(med_smape, axis=0)
      summary_df.loc["mean_RMSE"] = np.mean(mean_rmse, axis=0)
      summary_df.loc["median_RMSE"] = np.median(med_rmse, axis=0)
      return summary_df
  
imports: import argparse
  from collections import OrderedDict
  import glob
  import json
  import logging
  import math
  import os
  import re
  import sys
  import git
  from typing import Dict, List
  import numpy
  import pandas
  import tqdm
  from merlion.evaluate.forecast import ForecastEvaluator, ForecastMetric, ForecastEvaluatorConfig
  from merlion.models.ensemble.combine import CombinerBase, Mean, ModelSelector, MetricWeightedMean
  from merlion.models.ensemble.forecast import ForecasterEnsembleConfig, ForecasterEnsemble
  from merlion.models.factory import ModelFactory
  from merlion.models.forecast.base import ForecasterBase
  from merlion.transform.resample import TemporalResample, granularity_str_to_seconds
  from merlion.utils import TimeSeries, UnivariateTimeSeries
  from merlion.utils.resample import infer_granularity, to_pd_datetime
  from ts_datasets.base import BaseDataset
  from ts_datasets.forecast import *
  import matplotlib.pyplot
label_desc: Use image node_id 11 for calling a global function with example usage: summarize_full_df(full_df) and returns: summary_df