def process_data(self, stream, metadata):
ch, metadata = self._get_column_headers_and_update_metadata(stream, metadata)<EOL>df = self._convert_data_block_and_headers_to_df(stream)<EOL>return df, metadata, ch<EOL>
Extract the tabulated data from the input file.

Parameters
----------
stream : Streamlike object
    A Streamlike object (nominally StringIO)
    containing the table to be extracted
metadata : dict
    Metadata read in from the header and the namelist

Returns
-------
(pandas.DataFrame, dict)
    The first element contains the data, processed to the standard
    MAGICCData format.
    The second element is th updated metadata based on the processing performed.