class_docstr: Forecast each series with separate forecaster.
  
  Applies different forecasters by columns.
  
  `ColumnEnsembleForecaster` is passed forecaster/index pairs, exact syntax below.
  Index can be single pandas index element, pd.Index, int, str, or list thereof.
  If iterable (pd.Index, list), refers to multiple columns.
  
  Behaviour in `fit`, `predict`, `update`:
  For index pairs f_i, ix_i passed, applies forecaster f_i to column(s) ix_i.
  `predict` results are concatenated to one container with same columns as in `fit`.
  
  Parameters
  ----------
  forecasters : sktime forecaster, or list of tuples (str, estimator, int or pd.index)
      if tuples, with name = str, estimator is forecaster, index as int or index
      if last element is index, it must be int, str, or pd.Index coercible
      if last element is int x, and is not in columns, is interpreted as x-th column
      all columns must be present in an index
  
      If forecaster, clones of forecaster are applied to all columns.
      If list of tuples, forecaster in tuple is applied to column with int/str index
  
  Examples
  --------
  .. Doctest::
  
      >>> import pandas as pd
      >>> from sktime.forecasting.compose import ColumnEnsembleForecaster
      >>> from sktime.forecasting.naive import NaiveForecaster
      >>> from sktime.forecasting.trend import PolynomialTrendForecaster
      >>> from sktime.datasets import load_longley
  
  Using integers (column iloc references) for indexing:
  
  .. Doctest::
  
      >>> y = load_longley()[1][["GNP", "UNEMP"]]
      >>> forecasters = [
      ...     ("trend", PolynomialTrendForecaster(), 0),
      ...     ("naive", NaiveForecaster(), 1),
      ... ]
      >>> forecaster = ColumnEnsembleForecaster(forecasters=forecasters)
      >>> forecaster.fit(y, fh=[1, 2, 3])
      ColumnEnsembleForecaster(...)
      >>> y_pred = forecaster.predict()
  
  Using strings for indexing:
  
  .. Doctest::
  
      >>> df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
      >>> fc = ColumnEnsembleForecaster(
      ...     [("foo", NaiveForecaster(), "a"), ("bar", NaiveForecaster(), "b")]
      ... )
      >>> fc.fit(df, fh=[1, 42])
      ColumnEnsembleForecaster(...)
      >>> y_pred = fc.predict()
  
  Applying one forecaster to multiple columns, multivariate:
  
  .. Doctest::
  
      >>> df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9]})
      >>> fc = ColumnEnsembleForecaster(
      ...    [("ab", NaiveForecaster(), ["a", 1]), ("c", NaiveForecaster(), 2)]
      ... )
      >>> fc.fit(df, fh=[1, 42])
      ColumnEnsembleForecaster(...)
      >>> y_pred = fc.predict()
class_docstr_tok: ["Forecast","each","series","with","separate","forecaster",".","Applies","different","forecasters","by","columns",".","`","ColumnEnsembleForecaster","`","is","passed","forecaster\/index","pairs",",","exact","syntax","below",".","Index","can","be","single","pandas","index","element",",","pd.Index",",","int",",","str",",","or","list","thereof",".","If","iterable","(","pd.Index",",","list",")",",","refers","to","multiple","columns",".","Behaviour","in","`","fit","`",",","`","predict","`",",","`","update","`",":","For","index","pairs","f_i",",","ix_i","passed",",","applies","forecaster","f_i","to","column","(","s",")","ix_i",".","`","predict","`","results","are","concatenated","to","one","container","with","same","columns","as","in","`","fit","`",".","Parameters","--","--","--","--","--","forecasters",":","sktime","forecaster",",","or","list","of","tuples","(","str",",","estimator",",","int","or","pd.index",")","if","tuples",",","with","name","=","str",",","estimator","is","forecaster",",","index","as","int","or","index","if","last","element","is","index",",","it","must","be","int",",","str",",","or","pd.Index","coercible","if","last","element","is","int","x",",","and","is","not","in","columns",",","is","interpreted","as","x-th","column","all","columns","must","be","present","in","an","index","If","forecaster",",","clones","of","forecaster","are","applied","to","all","columns",".","If","list","of","tuples",",","forecaster","in","tuple","is","applied","to","column","with","int\/str","index","Examples","--","--","--","--","..","Doctest",":",":",">",">",">","import","pandas","as","pd",">",">",">","from","sktime.forecasting.compose","import","ColumnEnsembleForecaster",">",">",">","from","sktime.forecasting.naive","import","NaiveForecaster",">",">",">","from","sktime.forecasting.trend","import","PolynomialTrendForecaster",">",">",">","from","sktime.datasets","import","load_longley","Using","integers","(","column","iloc","references",")","for","indexing",":","..","Doctest",":",":",">",">",">","y","=","load_longley","(",")","[","1","]","[","[","``","GNP","''",",","``","UNEMP","''","]","]",">",">",">","forecasters","=","[","...","(","``","trend","''",",","PolynomialTrendForecaster","(",")",",","0",")",",","...","(","``","naive","''",",","NaiveForecaster","(",")",",","1",")",",","...","]",">",">",">","forecaster","=","ColumnEnsembleForecaster","(","forecasters=forecasters",")",">",">",">","forecaster.fit","(","y",",","fh=","[","1",",","2",",","3","]",")","ColumnEnsembleForecaster","(","...",")",">",">",">","y_pred","=","forecaster.predict","(",")","Using","strings","for","indexing",":","..","Doctest",":",":",">",">",">","df","=","pd.DataFrame","(","{","``","a","''",":","[","1",",","2",",","3","]",",","``","b","''",":","[","4",",","5",",","6","]","}",")",">",">",">","fc","=","ColumnEnsembleForecaster","(","...","[","(","``","foo","''",",","NaiveForecaster","(",")",",","``","a","''",")",",","(","``","bar","''",",","NaiveForecaster","(",")",",","``","b","''",")","]","...",")",">",">",">","fc.fit","(","df",",","fh=","[","1",",","42","]",")","ColumnEnsembleForecaster","(","...",")",">",">",">","y_pred","=","fc.predict","(",")","Applying","one","forecaster","to","multiple","columns",",","multivariate",":","..","Doctest",":",":",">",">",">","df","=","pd.DataFrame","(","{","``","a","''",":","[","1",",","2",",","3","]",",","``","b","''",":","[","4",",","5",",","6","]",",","``","c","''",":","[","7",",","8",",","9","]","}",")",">",">",">","fc","=","ColumnEnsembleForecaster","(","...","[","(","``","ab","''",",","NaiveForecaster","(",")",",","[","``","a","''",",","1","]",")",",","(","``","c","''",",","NaiveForecaster","(",")",",","2",")","]","...",")",">",">",">","fc.fit","(","df",",","fh=","[","1",",","42","]",")","ColumnEnsembleForecaster","(","...",")",">",">",">","y_pred","=","fc.predict","(",")"]
docstr: Compute/return prediction quantiles for a forecast.
  
  private _predict_quantiles containing the core logic,
      called from predict_quantiles and possibly predict_interval
  
  State required:
      Requires state to be "fitted".
  
  Accesses in self:
      Fitted model attributes ending in "_"
      self.cutoff
  
  Parameters
  ----------
  fh : guaranteed to be ForecastingHorizon
      The forecasting horizon with the steps ahead to to predict.
  X : optional (default=None)
      guaranteed to be of a type in self.get_tag("X_inner_mtype")
      Exogeneous time series to predict from.
  alpha : list of float (guaranteed not None and floats in [0,1] interval)
      A list of probabilities at which quantile forecasts are computed.
  
  Returns
  -------
  pred_quantiles : pd.DataFrame
      Column has multi-index: first level is variable name from y in fit,
          second level being the quantile forecasts for each alpha.
          Quantile forecasts are calculated for each a in alpha.
      Row index is fh. Entries are quantile forecasts, for var in col index,
          at quantile probability in second-level col index, for each row index.
docstr_tok: ["Compute\/return","prediction","quantiles","for","a","forecast",".","private","_predict_quantiles","containing","the","core","logic",",","called","from","predict_quantiles","and","possibly","predict_interval","State","required",":","Requires","state","to","be","``","fitted","''",".","Accesses","in","self",":","Fitted","model","attributes","ending","in","``","_","''","self.cutoff","Parameters","--","--","--","--","--","fh",":","guaranteed","to","be","ForecastingHorizon","The","forecasting","horizon","with","the","steps","ahead","to","to","predict",".","X",":","optional","(","default=None",")","guaranteed","to","be","of","a","type","in","self.get_tag","(","``","X_inner_mtype","''",")","Exogeneous","time","series","to","predict","from",".","alpha",":","list","of","float","(","guaranteed","not","None","and","floats","in","[","0,1","]","interval",")","A","list","of","probabilities","at","which","quantile","forecasts","are","computed",".","Returns","--","--","--","-","pred_quantiles",":","pd.DataFrame","Column","has","multi-index",":","first","level","is","variable","name","from","y","in","fit",",","second","level","being","the","quantile","forecasts","for","each","alpha",".","Quantile","forecasts","are","calculated","for","each","a","in","alpha",".","Row","index","is","fh",".","Entries","are","quantile","forecasts",",","for","var","in","col","index",",","at","quantile","probability","in","second-level","col","index",",","for","each","row","index","."]
code: def _predict_quantiles(self, fh=None, X=None, alpha=None):
      """Compute/return prediction quantiles for a forecast.
  
      private _predict_quantiles containing the core logic,
          called from predict_quantiles and possibly predict_interval
  
      State required:
          Requires state to be "fitted".
  
      Accesses in self:
          Fitted model attributes ending in "_"
          self.cutoff
  
      Parameters
      ----------
      fh : guaranteed to be ForecastingHorizon
          The forecasting horizon with the steps ahead to to predict.
      X : optional (default=None)
          guaranteed to be of a type in self.get_tag("X_inner_mtype")
          Exogeneous time series to predict from.
      alpha : list of float (guaranteed not None and floats in [0,1] interval)
          A list of probabilities at which quantile forecasts are computed.
  
      Returns
      -------
      pred_quantiles : pd.DataFrame
          Column has multi-index: first level is variable name from y in fit,
              second level being the quantile forecasts for each alpha.
              Quantile forecasts are calculated for each a in alpha.
          Row index is fh. Entries are quantile forecasts, for var in col index,
              at quantile probability in second-level col index, for each row index.
      """
      out = self._by_column(
          "predict_quantiles",
          fh=fh,
          X=X,
          alpha=alpha,
          col_multiindex=True,
      )
      if len(out.columns.get_level_values(0).unique()) == 1:
          out.columns = out.columns.droplevel(level=0)
      else:
          out.columns = out.columns.droplevel(level=1)
      return out
  
file_path: sktime/sktime/forecasting/compose/_column_ensemble.py
imports: from sktime.base._meta import _ColumnEstimator
  from sktime.forecasting.base._base import BaseForecaster
  from sktime.forecasting.base._meta import _HeterogenousEnsembleForecaster
label_desc: Use image node_id 7 for calling the ColumnEnsembleForecaster obj's underlying member method code with example usage: obj._predict_quantiles(fh, X, alpha) and returns: out