def missing_columns(df, missing_threshold=0.6):
    """Find missing features
    
    Parameters
    ----------
    df       : pd.DataFrame, shape (n_samples, n_features)
        Training data, where n_samples is the number of samples and n_features is the number of features.
    missing_threshold  : float, default=0.6
        Count all features with a missing rate greater than `missing_threshold`.
    
    Returns
    -------
    t : All features with a missing rate greater than `missing_threshold`
    """
    assert 1>=missing_threshold>=0, "`missing_threshold` should be one of [0, 1]."
    t = (1-df.count()/len(df)).reset_index()
    t.columns = ['feature_name', 'missing_rate']
    t = t[t.missing_rate>=missing_threshold].reset_index(drop=True)
    return t