'Return a copy of self, with masked values filled with a given value.
Parameters
fill_value : scalar; optional
The value to use for invalid entries (`None` by default).  If
`None`, the ``fill_value`` attribute of the array is used
instead.
Returns
filled_column : Column
A copy of ``self`` with masked entries replaced by `fill_value`
(be it the function argument or the attribute of ``self``).'

def filled(self, fill_value=None):

    if (fill_value is None):
        fill_value = self.fill_value
    data = super(MaskedColumn, self).filled(fill_value)
    column_cls = (self.parent_table.Column if (self.parent_table is not None) else Column)
    out = column_cls(name=self.name, data=data, unit=self.unit, format=self.format, description=self.description, meta=deepcopy(self.meta))
    return out
