class_docstr: Transformer that performs principal component analysis (PCA) to the
  multivariate time series (every time point is treated as a point in high-
  dimensional space), and represents those points with their projection on
  the first k principal components.
  
  Parameters
  ----------
  k: int, optional
      Number of principal components to use. Default: 1.
code: def _predict_core(self, df: pd.DataFrame) -> pd.DataFrame:
      if self.k > self._model.n_components:
          raise ValueError(
              "k is increased after previous fitting. Please fit again."
          )
      results = pd.DataFrame(
          index=df.index,
          columns=["pc{}".format(i) for i in range(self.k)],
      )
      if not df.dropna().empty:
          results.loc[df.dropna().index] = self._model.transform(
              df.dropna().values
          )[:, : self.k]
      return results
  
imports: from typing import Any, Callable, Dict, Optional, Tuple, Union
  import pandas
  from sklearn.decomposition import PCA
  from .._transformer_base import _NonTrainableMultivariateTransformer, _TrainableMultivariateTransformer
label_desc: Use image node_id 4 for calling the PcaProjection obj's underlying member method code with example usage: obj._predict_core(df) and returns: results