code: def _transform(self, df: DataFrame) -> DataFrame:
      curr_df = df.cache()
  
      for model in self.models:
          curr_df = model.transform(curr_df).cache()
  
      return curr_df
  
imports: from typing import List
  from synapse.ml.cyber.utils.spark_utils import DataFrameUtils, ExplainBuilder, HasSetInputCol, HasSetOutputCol
  from pyspark.ml import Estimator, Transformer
  from pyspark.ml.param.shared import HasInputCol, HasOutputCol, Param, Params
  from pyspark.sql import DataFrame, functions
label_desc: Use image node_id 5 for calling the MultiIndexerModel obj's underlying member method code with example usage: obj._transform(df) and returns: curr_df