Объединить целевой столбец обратно в исходный кадр данных

#python-3.x #pandas #dataframe #jupyter-notebook

Вопрос:

У меня есть фрейм данных, и я сделал выбор некоторых функций (следуя руководству), чтобы удалить некоторые столбцы:

Что я сделал:

 X = df.drop('goal', axis=1).select_dtypes(exclude=['object'])
y = df['goal']
 

Затем я выбрал столбцы, используя mutual_info_gain:

 from sklearn.feature_selection import mutual_info_regression, mutual_info_classif
info_gain = mutual_info_classif(X, y)
 

И, наконец,:

 columns_to_keep = []
for score, f_name in sorted(zip(info_gain, X.columns), reverse=True)[:50]:
        print(f_name, score)


        columns_to_keep.append(f_name)
df_info_gain = X[columns_to_keep]
 

Итак, теперь df_info_gain есть все 50 функций, которые я выбрал, но не goal столбец y

Что мне нужно:

Как правильно вернуть goal столбец в этот новый df_info_gain фрейм данных?

Комментарии:

1. Если индекс не изменился, вы можете попробовать df_info_gain = df_info_gain.merge(y.to_frame(name="goal"), left_index=True, right_index=True) .

2. df_info_gain = df_info_gain.assign(goal=y)