code: def posterior_to_xarray(self):
          
          columns = self.posterior[0].columns
  
          # filter posterior_predictive and log_likelihood
          posterior_predictive = self.posterior_predictive
          if posterior_predictive is None or (
              isinstance(posterior_predictive, str) and posterior_predictive.lower().endswith(".csv")
          ):
              posterior_predictive = []
          elif isinstance(posterior_predictive, str):
              posterior_predictive = [
                  col for col in columns if posterior_predictive == col.split(".")[0]
              ]
          else:
              posterior_predictive = [
                  col
                  for col in columns
                  if any(item == col.split(".")[0] for item in posterior_predictive)
              ]
  
          log_likelihood = self.log_likelihood
          if log_likelihood is None:
              log_likelihood = []
          else:
              log_likelihood = [col for col in columns if log_likelihood == col.split(".")[0]]
  
          invalid_cols = posterior_predictive + log_likelihood
          valid_cols = [col for col in columns if col not in invalid_cols]
          data = _unpack_dataframes([item[valid_cols] for item in self.posterior])
          return dict_to_dataset(data, coords=self.coords, dims=self.dims)
docs: Extract posterior samples from output csv.