<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _subset_table(full_table, subset):
 """ Return subtable matching all conditions in subset Parameters full_table : dataframe Entire data table subset : str String describing subset of data to use for analysis Returns ------- dataframe Subtable with records from table meeting requirements in subset """

    if not subset:
        return full_table

    # TODO: Figure out syntax for logical or
    conditions = subset.replace(' ','').split(';')

    valid = np.ones(len(full_table), dtype=bool)
    for condition in conditions:
        col = re.split("[<>=!]", condition)[0]
        comp = condition.replace(col, "")
        try:
            this_valid = eval("full_table['{0}']{1}".format(col, comp))
        except KeyError as e: # catch error and redisplay for twiggy
            raise KeyError("Column '%s' not found" % e.message)
        valid = np.logical_and(valid, this_valid)

    return full_table[valid]