Ниже приведен простой подход, но он может работать не всегда (почему он не работает всегда, было объяснено после кода)
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
#fit the encoder
enc.fit(X_train)
#transform the data
X_train_encoded = enc.transform(X_train)
#tranform test data
X_test_encoded = enc.transform(X_test)
Но есть небольшая проблема с этой методологией.Если ваши данные поезда имеют 2 уникальных значения в столбце, кодер создаст 2 фиктивных объекта.Но если ваши тестовые данные имеют 3 уникальных значения для одного и того же столбца, у нас будет дополнительный столбец, и наша модель выдаст исключение.Поэтому всегда рекомендуется объединять тестовые и обучающие данные перед использованием быстрого кодирования, а затем восстанавливать, разбивать данные обратно на тестовые и обучающие на основе индексов.