'Insert values before the given indices in the column and return
a new `~astropy.table.Column` object.
Parameters
obj : int, slice or sequence of ints
Object that defines the index or indices before which ``values`` is
inserted.
values : array_like
Value(s) to insert.  If the type of ``values`` is different
from that of quantity, ``values`` is converted to the matching type.
``values`` should be shaped so that it can be broadcast appropriately
axis : int, optional
Axis along which to insert ``values``.  If ``axis`` is None then
the column array is flattened before insertion.  Default is 0,
which will insert a row.
Returns
out : `~astropy.table.Column`
A copy of column with ``values`` and ``mask`` inserted.  Note that the
insertion does not occur in-place: a new column is returned.'

def insert(self, obj, values, axis=0):

    if (self.dtype.kind == u'O'):
        data = np.insert(self, obj, None, axis=axis)
        data[obj] = values
    else:
        values = np.asarray(values, dtype=self.dtype)
        data = np.insert(self, obj, values, axis=axis)
    out = data.view(self.__class__)
    out.__array_finalize__(self)
    return out
