code: def rectify_pgroups(self):
          
          # add any parameters groups
          pdata_groups = list(self.parameter_data.loc[:,"pargp"].\
              value_counts().keys())
          #print(pdata_groups)
          need_groups = []
          existing_groups = list(self.parameter_groups.pargpnme)
          for pg in pdata_groups:
              if pg not in existing_groups:
                  need_groups.append(pg)
          if len(need_groups) > 0:
              #print(need_groups)
              defaults = copy.copy(pst_utils.pst_config["pargp_defaults"])
              for grp in need_groups:
                  defaults["pargpnme"] = grp
                  self.parameter_groups = \
                      self.parameter_groups.append(defaults,ignore_index=True)
  
          # now drop any left over groups that aren't needed
          for gp in self.parameter_groups.loc[:,"pargpnme"]:
              if gp in pdata_groups and gp not in need_groups:
                  need_groups.append(gp)
          self.parameter_groups.index = self.parameter_groups.pargpnme
          self.parameter_groups = self.parameter_groups.loc[need_groups,:]
docs: private method to synchronize parameter groups section with
          the parameter data section