code: def get_correspondance_dict(self, classA, classB,
                                  restrict=None,
                                  replace_numeric=True):
          
          result = {nn: None for nn in self.data[classA].values}
  
          if restrict is None:
              df = self.data.copy()
          else:
              df = self.data[restrict].copy()
  
          if replace_numeric and df[classB].dtype.kind in 'bifc':
              df.loc[~df[classB].isnull(), classB] = classB
              df.loc[df[classB].isnull(), classB] = None
  
          result.update(df.groupby(classA)
                          .aggregate(lambda x: list(x.unique()))
                          .to_dict()[classB])
  
          return result
docs: Returns a correspondance between classification A and B as dict
  
          Parameters
          ----------
  
          classA: str
              Valid classification (column name of data)
  
          classB: str
              Valid classification (column name of data).
  
          restrict: boolean vector of size cc.data, optional
              where cc is the name of the CountryConverter instance.  Used to
              restrict the data sheet if necessary.  E.g. to convert to countries
              which were OECD members before 1970 use
              cc.get_correspondance_dict('ISO3', 'OECD', restrict=cc.data.OECD <
              1970)
  
          replace_numeric: boolean, optional
              If True (default) replace numeric values with the column header.
              This can be used if get a correspondance to, for example, 'OECD'
              instead of to the OECD membership years. Set to False if the actual
              numbers are required (as for UNcode).
  
          Returns
          -------
          dict with
              keys: based on classA
              items: list of correspoding entries in classB or None