Ну, как вы указали в своем вопросе, есть pd.get_dummies
, который я считаю лучшим выбором здесь.Сказав это, вы можете использовать
pd.concat([X_train_num, pd.DataFrame(X_train_cat, index=X_train_num.index)], axis=1)
Если хотите, вы можете также дать полезные имена столбцов с
pd.concat([X_train_num, pd.DataFrame(X_train_cat, index=X_train_num.index, columns=cols)], axis=1)
и cols
может быть любым списком строк, который вы хотите (соответствующей длины).