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 reconstructs those points with 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._model is None:
          raise RuntimeError("Please fit the model first.")
      if self.k > self._model.n_components:
          raise ValueError(
              "k is increased after previous fitting. Please fit again."
          )
      results = pd.DataFrame(columns=df.columns, index=df.index)
      if not df.dropna().empty:
          results.loc[
              df.dropna().index
          ] = self._model.inverse_transform(
              self._model.transform(df.dropna().values)
          )
      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 PcaReconstruction obj's underlying member method code with example usage: obj._predict_core(df) and returns: results