def zero_variance_flagger_and_cutter(df, useful_cols, cutter=True):
    """
    Function flags features with only one value (zero variance), and, if specified, culls these from the input dataframe (inplace)
    
    Parameters
    ----------
    df : pandas.DataFrame
        Desired features
    useful_cols : pandas.DataFrame
        Lookup table detailing desired features
    cutter : bool
        If true [default], df is modified to remove features with only one value
    
    Returns
    -------
    zero_variance_features : list
        List of features with zero variance
    useful_cols : pandas.DataFrame
        Returned unchanged if `cutter` == False, else the clipped features are removed
    """
    zero_variance_features = []
    for feature_name, feature in df.iteritems():
        if len(feature.value_counts()) == 1:
            zero_variance_features.append(feature_name)
    if cutter == True:
        print(
            f'Following features dropped for having zero variance: {zero_variance_features}'
            )
        df.drop(zero_variance_features, axis=1, inplace=True)
        useful_cols = useful_cols.loc[(~useful_cols.feature.isin(
            zero_variance_features)), :]
    return zero_variance_features, useful_cols
