def delete_rows_for_taxa(dataframe, taxa_level, taxa_name):
    """
    return a copy of the dataframe with the taxa name at the specified taxa
    level removed.

    For use in aggregating_mixed_taxonomy: allows for keeping track of the
    leftovers.

    :param dataframe: dataframe to copy and delete rows from
    :param taxa_level: taxa level to look for the name in
    :param taxa_name: rows with this name at the specified taxa_leven are
    deleted
    :return: a dataframe with less rows
    """
    df = dataframe.copy()
    return df[df[taxa_level] != taxa_name]