#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)