code: def sample(self, num_rows=1):
          
          self.check_fit()
  
          res = {}
          means = np.zeros(self.covariance.shape[0])
          size = (num_rows,)
  
          clean_cov = np.nan_to_num(self.covariance)
          samples = np.random.multivariate_normal(means, clean_cov, size=size)
  
          for i, (label, distrib) in enumerate(self.distribs.items()):
              cdf = stats.norm.cdf(samples[:, i])
              res[label] = distrib.percent_point(cdf)
  
          return pd.DataFrame(data=res)
docs: Creates sintentic values stadistically similar to the original dataset.
  
          Args:
              num_rows: `int` amount of samples to generate.
  
          Returns:
              np.ndarray: Sampled data.