'Return a copy of self, with masked values filled.
If input ``fill_value`` supplied then that value is used for all
masked entries in the table.  Otherwise the individual
``fill_value`` defined for each table column is used.
Parameters
fill_value : str
If supplied, this ``fill_value`` is used for all masked entries
in the entire table.
Returns
filled_table : Table
New table with masked values filled'

def filled(self, fill_value=None):

    if self.masked:
        data = [col.filled(fill_value) for col in six.itervalues(self.columns)]
    else:
        data = self
    return self.__class__(data, meta=deepcopy(self.meta))
