code: def _table_relabel(table, substitutions, replacements=None):
      
      if replacements is not None:
          raise NotImplementedError
  
      observed = set()
  
      exprs = []
      for c in table.columns:
          expr = table[c]
          if c in substitutions:
              expr = expr.name(substitutions[c])
              observed.add(c)
          exprs.append(expr)
  
      for c in substitutions:
          if c not in observed:
              raise KeyError('{0!r} is not an existing column'.format(c))
  
      return table.projection(exprs)
docs: Change table column names, otherwise leaving table unaltered
  
      Parameters
      ----------
      substitutions
  
      Returns
      -------
      relabeled : TableExpr