Код: Выделить всё
import category_encoders as ce
cols_a = ['group1', 'group2']
dfa = pd.DataFrame([['A1', 'A2', 1], ['B1', 'B2', 4], ['A1', 'C2', 3], ['B1', 'B2', 5]], columns=['group1', 'group2', 'label'])
enc = ce.TargetEncoder(cols=cols_a)
enc.fit(dfa[cols_a], dfa['label'])
enc.mapping

Может быть, вам стоит проигнорировать процесс кодирования и просто запомнить выходное сопоставление.
Как свести это сопоставление в ожидаемый кадр данных ниже?

Дальнейшие действия: в конечном итоге я хочу заменить 'cat_val' с исходными категориальными значениями из сопоставления enc.ordinal_encoder.mapping. Есть ли простой способ добиться этого?
Мое решение — сгруппировать по 'group' -> найти соответствующий словарь -> заменить его значением из словарь.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -dataframe