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

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]