Поделите данные на тренировочную и тестовую выборки, сделайте стратификацию по целевому признаку. Затем подготовьте список строковых категорий для кодирования.

# импортируем нужные библиотеки и объявляем константы
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder

RANDOM_STATE = 42
TEST_SIZE = 0.25

# считываем данные из CSV-файла в датафрейм и задаём id в качестве индексов
df = pd.read_csv('train_satisfaction.csv')
df = df.set_index('id')

# делим данные на входные и целевые
X = df.drop(['Удовлетворён предоставленной услугой'], axis=1)
y = df['Удовлетворён предоставленной услугой']

# Разделите данные на тренировочную и тестовую выборки:
# - используйте константы с размером тестовой выборки и random_state;
# - сделайте стратификацию по целевому признаку.
X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                                    test_size=TEST_SIZE, 
                                                    random_state=RANDOM_STATE, 
                                                    stratify=y
                                                   )

# создайте список со строковыми категориями для кодирования
cols_ohe = X_train.select_dtypes(include=['object']).columns

# создаём экземпляр класса OneHotEncoder для кодирования
oh_encoder = OneHotEncoder(drop='first', sparse=False)

# обучаем OneHotEncoder на категориальных признаках из тренировочной выборки
oh_encoder.fit(X_train[cols_ohe])

# сохраняем в переменной encoder_col_names список названий новых столбцов 
encoder_col_names = oh_encoder.get_feature_names()

# преобразовываем категориальные признаки в тренировочной и тестовой выборках
X_train[encoder_col_names] = oh_encoder.transform(X_train[cols_ohe])
X_test[encoder_col_names] = oh_encoder.transform(X_test[cols_ohe])

# удаляем преобразованные признаки
X_train = X_train.drop(cols_ohe, axis=1)
X_test = X_test.drop(cols_ohe, axis=1)

# выводим тренировочные данные
print(X_train.head())

Результат


          Возраст  Расстояние  ...  x3_плацкарт  x3_св\
id                             ...                    
40366660       39         752  ...          1.0    0.0\
30521827       24         147  ...          1.0    0.0\
79417276       60         898  ...          0.0    0.0\
58392972       29         375  ...          0.0    0.0\
85633462       58         303  ...          0.0    0.0

[5 rows x 13 columns]