def filter_df(df, gender, question,campaign,no_enrollments,min_amount,max_amount):
    """
    Filters the Pandas DataFrame containing the aggregate data according to serveral parameters given by the user.
    
    Parameters:
    df: Pandas DataFrame
        A pandas DataFrame containing the aggregate data table.    
    gender: list
        List containing the selection of gender options.
    question: list
        List containing the selection of questions.
    campaign: list
        List containing the selection of campaigns.
    no_enrollments: bool
        Boolean value indicating whether enrollment questions should be filtered out.
    min_amount: int
        Integer containing the lower bound of the range of values to be included.
    max_amount: int
        Integer containing the uppr bound of the range of values to be included.

    Returns:
    df: Pandas DataFrame
        A Pandas DataFrame filtered by a set of parameters.
    """
    if no_enrollments:
        df = df.dropna(subset="usdollar")
        df = df[df['usdollar'].isin(range(min_amount-1,max_amount+1))]
    if len(gender) != 0:
        df = df[df['gender'].isin(gender)]
    if len(question) != 0:
        df = df[df['question'].isin(question)]
    if len(campaign) != 0:
        df = df[df['campaign'].isin(campaign)]
    return df