Debes dividir antes de preprocesar o imputar.
La división entre entrenamiento y conjunto de prueba es un intento de replicar la situación en la que tiene información pasada y está creando un modelo que probará en información futura aún desconocida: el conjunto de entrenamiento toma el lugar del pasado y el conjunto de prueba toma el lugar del futuro, por lo que solo puede probar su modelo entrenado una vez.
Teniendo en cuenta la analogía pasado / futuro, esto significa cualquier cosa que haga para preprocesar o procesar sus datos, como imputar valores perdidos, debe hacer solo en el conjunto de capacitación. Luego puede recordar lo que le hizo a su conjunto de entrenamiento si su conjunto de prueba también necesita preprocesamiento o imputación, de modo que lo haga de la misma manera en ambos conjuntos.
Agregado de los comentarios: si usa los datos de la prueba para afectar los datos de entrenamiento, entonces los datos de la prueba se están utilizando para construir su modelo, por lo que deja de ser datos de prueba y no proporcionará una prueba justa de su modelo. Corre el riesgo de sobreajustar, y fue para desalentar esto que separó los datos de prueba en primer lugar