def get_over_threshold_columns(spreads, threshold, names_only=True):
    """
    Given results from `get_null_count_spreads`, get features whose 
    spreads exceed `threshold`.

    Parameters
    ----------

    spreads : pandas.DataFrame
        Results from `get_null_count_spreads`.

    threshold : float, with value between 0 and 1 (default=.99)
        Measure of maximum acceptibility for spread between the proportion 
        of rows with a given class value when a given feature is `null`, vs. 
        when it's `not-null`. Spread is the difference between these two 
        proportions.

    names_only : bool (default=True)
        Whether to return just names of features that exceed `threshold`, or 
        the `get_null_count_spreads` results for these features.

    Return
    ------

    Either `pandas.DataFrame` or `list`.
    """
    over_threshold = spreads[spreads > threshold].dropna()
    if names_only:
        spreads = list(spreads[spreads > threshold].dropna().index)
    return spreads
