code: def _table_set_column(table, name, expr):
      
      expr = table._ensure_expr(expr)
  
      if expr._name != name:
          expr = expr.name(name)
  
      if name not in table:
          raise KeyError('{0} is not in the table'.format(name))
  
      # TODO: This assumes that projection is required; may be backend-dependent
      proj_exprs = []
      for key in table.columns:
          if key == name:
              proj_exprs.append(expr)
          else:
              proj_exprs.append(table[key])
  
      return table.projection(proj_exprs)
docs: Replace an existing column with a new expression
  
      Parameters
      ----------
      name : string
        Column name to replace
      expr : value expression
        New data for column
  
      Returns
      -------
      set_table : TableExpr
        New table expression