import copy


def remove_cols(df, col_names_to_exclude):
    """
    Removes from the DataFrame every column whose name is a superset of any name in col_names_to_exclude
    Especially useful for filtering out the samples of other groups.
    """
    cols_copy = copy.copy(df.columns)
    for col in cols_copy:
        for group_name in col_names_to_exclude:
            if group_name.lower() in col.lower():
                df.drop(col, axis=1, inplace=True)
                break
    return df