class_docstr: Apply a transformer columnwise to multivariate series.
  
  Overview: input multivariate time series and the transformer passed
  in `transformer` parameter is applied to specified `columns`, each
  column is handled as a univariate series. The resulting transformed
  data has the same shape as input data.
  
  Parameters
  ----------
  transformer : Estimator
      scikit-learn-like or sktime-like transformer to fit and apply to series.
  columns : list of str or None
          Names of columns that are supposed to be transformed.
          If None, all columns are transformed.
  
  Attributes
  ----------
  transformers_ : dict of {str : transformer}
      Maps columns to transformers.
  columns_ : list of str
      Names of columns that are supposed to be transformed.
  
  See Also
  --------
  OptionalPassthrough
  
  Examples
  --------
  >>> from sktime.datasets import load_longley
  >>> from sktime.transformations.series.detrend import Detrender
  >>> from sktime.transformations.compose import ColumnwiseTransformer
  >>> _, X = load_longley()
  >>> transformer = ColumnwiseTransformer(Detrender())
  >>> Xt = transformer.fit_transform(X)
docstr: Update parameters.
  
  Update the parameters of the estimator with new data
  by iterating over specified columns.
  Only works if `self.transformer` has an `update` method.
  
  Parameters
  ----------
  X : pd.Series
      New time series.
  update_params : bool, optional, default=True
  
  Returns
  -------
  self : an instance of self
docstr_tok: ["Update","parameters",".","Update","the","parameters","of","the","estimator","with","new","data","by","iterating","over","specified","columns",".","Only","works","if","`","self.transformer","`","has","an","`","update","`","method",".","Parameters","--","--","--","--","--","X",":","pd.Series","New","time","series",".","update_params",":","bool",",","optional",",","default=True","Returns","--","--","--","-","self",":","an","instance","of","self"]
code: def update(self, X, y=None, update_params=True):
      """Update parameters.
  
      Update the parameters of the estimator with new data
      by iterating over specified columns.
      Only works if `self.transformer` has an `update` method.
  
      Parameters
      ----------
      X : pd.Series
          New time series.
      update_params : bool, optional, default=True
  
      Returns
      -------
      self : an instance of self
      """
      z = check_series(X)
  
      # make z a pd.DataFrame in univariate case
      if isinstance(z, pd.Series):
          z = z.to_frame()
  
      # make sure z contains all columns that the user wants to transform
      _check_columns(z, selected_columns=self.columns_)
      for colname in self.columns_:
          self.transformers_[colname].update(z[colname], X)
      return self
  
imports: import pandas
  from sktime.base._meta import _ColumnEstimator, _HeterogenousMetaEstimator
  from sktime.transformations.base import BaseTransformer
  from sktime.utils.multiindex import rename_multiindex
  from sktime.utils.validation.series import check_series
label_desc: Use image node_id 5 for calling the ColumnwiseTransformer obj's underlying member method code with example usage: obj.update(X, y, update_params) and returns: self