What is ColumnTransformer in scikit-learn and how can it be used to streamline data preprocessing in a machine learning project? Can you provide an example in Python?

I’m working on a machine learning project, and I’m finding that my data preprocessing steps are getting a bit unwieldy. I’ve heard about using ColumnTransformer in Scikit-Learn to streamline this process, but I’m not quite sure how to use it. Can someone explain what ColumnTransformer does and provide an example of how to use it in Python?

Here is my code: