def get_data_condition()

in domainbed_measures/experiment/regression.py [0:0]


def get_data_condition(data,
                       dataset=None,
                       environment=None,
                       feature_lambda=None,
                       normalize=False,
                       target_name="target_err"):
    if dataset is not None:
        data = data.loc[data['dataset'] == dataset]
    if environment is not None:
        data = data.loc[data['all_test_envs'] == environment]

    data = data.drop(["dataset", "all_test_envs", "test_env"], axis=1)

    # work with the normalized z-scores of targets
    target = data[target_name]
    if normalize == True:
        target = (target - target.mean()) / (target.std() +
                                             np.finfo(float).eps)
    data = data.drop([target_name], axis=1)

    if feature_lambda is not None:
        if isinstance(feature_lambda, list):
            drop_features = list(
                set(data.columns).difference(set(feature_lambda)))
        else:
            drop_features = [
                x for x in data.columns if feature_lambda(x) == False
            ]
        data = data.drop(drop_features, axis=1)

    # work with the normalized z-scores of features
    if normalize == True:
        features = (data - data.mean()) / (data.std() + np.finfo(float).eps)
    else:
        features = data

    return features, target