Написанная мной функция PCA возвращает KeyError, и я не знаю, как с этим справиться - PullRequest
0 голосов
/ 24 сентября 2019

Я пишу функцию для проверки функций, которые коррелированы выше определенного порога, и затем объединяет их в одну функцию с PCA, но как только цикл встречает значение, которое он уже удалил из набора данных, он перестает работать.Я попытался добавить исключение, но я неопытен с ним, поэтому он просто пропускает код и завершает работу до конца функции.Вот код, чтобы было более понятно, что я делаю:

def compress_2_similar(df, threshold):
    #import PCA
    pca = PCA(n_components = 1)
    #iterating trough features in the data set
    for df_feature in list(df):
        for feature, value in df.corr()[df_feature].sort_values(ascending=False).iteritems():
            try:
                if abs(value) >= threshold:
                    if corr_feature != feature:
                        new_feature_name = feature,' + ',corr_feature
                        df[new_feature_name] = pca.fit_transform(df[[feature, corr_feature]])                        
                        df = df.drop([feature, corr_feature], axis=1)
                    else:
                        pass
                else:
                    pass
            except KeyError:
                continue
    return df

Заранее спасибо за помощь!

...