'Return a new Quantity instance which is consistent with the
input ``cols`` and has ``length`` rows.
This is intended for creating an empty column object whose elements can
be set in-place for table operations like join or vstack.
Parameters
cols : list
List of input columns
length : int
Length of the output column object
metadata_conflicts : str (\'warn\'|\'error\'|\'silent\')
How to handle metadata conflicts
name : str
Output column name
Returns
col : Quantity (or subclass)
Empty instance of this class consistent with ``cols``'

def new_like(self, cols, length, metadata_conflicts=u'warn', name=None):

    attrs = self.merge_cols_attributes(cols, metadata_conflicts, name, (u'meta', u'format', u'description'))
    shape = ((length,) + attrs.pop(u'shape'))
    dtype = attrs.pop(u'dtype')
    data = np.zeros(shape=shape, dtype=dtype)
    map = {key: (data if (key == u'value') else getattr(cols[(-1)], key)) for key in self._represent_as_dict_attrs}
    map[u'copy'] = False
    out = self._construct_from_dict(map)
    for (attr, value) in attrs.items():
        setattr(out.info, attr, value)
    return out
