docs: def parse_data(self, selected_region_data, selected_values, full_load=False, extension="gdm"):
          """
          Parses all of the region data
          :param selected_region_data: the columns of region data that are needed
          :param selected_values: the selected values to be put in the matrix cells
          :param full_load: Specifies the method of parsing the data. If False then parser omits the parsing of zero(0)
              values in order to speed up and save memory. However, while creating the matrix, those zero values are going to be put into the matrix.
              (unless a row contains "all zero columns". This parsing is strongly recommended for sparse datasets.
              If the full_load parameter is True then all the zero(0) data are going to be read.
          :param extension: the extension of the region data files that are going to be parsed.
          :return: the resulting region dataframe
          """
          regions = list(selected_region_data)
          if type(selected_values) is list:
              regions.extend(selected_values)
          else:
              regions.append(selected_values)
  
          files = self._get_files(extension, self.path)
          df = pd.DataFrame(dtype=float)
  
          cols = self.parse_schema(self.schema)
          print("Parsing the data files...")
          list_of_data = []
          for f in tqdm(files):
              data = self.parse_single_data(f, cols, regions, selected_values, full_load)
              list_of_data.append(data)
          print("pre-concat")
          df = pd.concat(list_of_data)
          return df