def get_model_names(bool_df, metric_name, p_list=[25, 50, 75, 100]):
    """
    Given dataframe of booleans, return the column name for every index where
    value is True. {25:['Mean+LR'], 50:['Mean+LR'], 100:['Mean+LR',
    'MICE+RF']}

    Parameters
    ----------
    bool_df: pandas.DataFrame
        Dataframe containing booleans. Where major index in
        classification metric name, minor index is percentage of available
        entries, and column names are model names.
    metric_name: str
        Major index name of interest.
    p_list: list of ints
        [25,50,75,100]

    Returns
    -------
    cur_dict: dict
        {25:['Mean+LR'], 50:['Mean+LR'], 100:['Mean+LR', 'MICE+RF']}
    """
    cur_dict = dict()
    for i in p_list:
        cur_df = bool_df.loc[metric_name]
        col_names = cur_df.columns
        # print(metric_name, i)
        mask = list(cur_df.loc[i])
        cur_model_names = list(col_names[mask])
        cur_dict[i] = cur_model_names
    return cur_dict