code: def swap_columns(self, column_name_1, column_name_2, inplace=False):
          
          colnames = self.column_names()
          colid_1 = colnames.index(column_name_1)
          colid_2 = colnames.index(column_name_2)
  
          if inplace:
              ret = self
          else:
              ret = self.copy()
  
          with cython_context():
              ret.__proxy__.swap_columns(colid_1, colid_2)
  
          ret._cache = None
          return ret
docs: Returns an SFrame with two column positions swapped.
  
          If inplace == False (default) this operation does not modify the
          current SFrame, returning a new SFrame.
  
          If inplace == True, this operation modifies the current
          SFrame, returning self.
  
          Parameters
          ----------
          column_name_1 : string
              Name of column to swap
  
          column_name_2 : string
              Name of other column to swap
  
          inplace : bool, optional. Defaults to False.
              Whether the SFrame is modified in place.
  
          Returns
          -------
          out : SFrame
              The SFrame with swapped columns.
  
          Examples
          --------
          >>> sf = turicreate.SFrame({'id': [1, 2, 3], 'val': ['A', 'B', 'C']})
          >>> res = sf.swap_columns('id', 'val')
          >>> res
          +-----+-----+
          | val | id  |
          +-----+-----+
          |  A  |  1  |
          |  B  |  2  |
          |  C  |  3  |
          +----+-----+
          [3 rows x 2 columns]