SKlearn automate data pre treatment
A few observations:


You are adding spaces before most of your : throughout, which reads weird. I'd remove this as I've never seen any other Python code that does this
I would check out Pep8 as a way to clean up a variety of formatting things, as it is the more or less accepted Python formatting standard


This will show things like lacking spaces around operators, too many line breaks, etc



Also, I am not sure how you are using underscores here. Generally, underscores signify private members/methods in Python and it looks like you have quite a few places you could make your member variables private.

Also this could be a bit more clear:

self.train.loc[self.train[feat].value_counts()[self.train[feat]].values &lt;  self.rare_threshold, feat] = "RARE"


You might consider some intermediate steps here to help with readability. Even something as simple as:

val = self.train[feat].value_counts()[self.train[feat]].values &lt;  self.rare_threshold
self.train.loc[val, feat] = "RARE"


is more clear. Trying to read that many nested dictionary lookups is not simple.