<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _load_table(self, metadata_path, data_path):
 """ Load data table, taking subset if needed Parameters metadata_path : str Path to metadata file data_path : str Path to data file, absolute or relative to metadata file Returns ------- dataframe Table for analysis """


        metadata_dir = os.path.dirname(os.path.expanduser(metadata_path))
        data_path = os.path.normpath(os.path.join(metadata_dir, data_path))

        extension = data_path.split('.')[-1]

        if extension == 'csv':
            full_table = pd.read_csv(data_path, index_col=False)
            table = _subset_table(full_table, self.subset)
            self.meta, _ = _subset_meta(self.meta, self.subset)
        elif extension in ['db', 'sql']:

            # TODO: deal with incrementing in DB table
            table = self._get_db_table(data_path, extension)
        else:
            raise TypeError('Cannot process file of type %s' % extension)

        return table