Предполагая, df
- это ваш отфильтрованный кадр данных, который вы хотите преобразовать (например, в соответствии с вашим примером в вопросе):
>>> df.apply(LabelEncoder().fit_transform)
Gender Married x_y x_z
0 0 0 0 0
1 0 1 1 0
2 0 1 2 1
3 0 1 3 0
4 0 0 1 0
Чтобы сделать его более общим для декодирования, вам нужно отслеживать свою меткукодировщики (я использовал словарь, связанный с именами столбцов данных).Затем вам нужно соответствовать каждому.
encoders = {col: LabelEncoder().fit(df[col]) for col in df}
encoded_df = pd.DataFrame(
{col: encoders[col].transform(df[col]) for col in df},
index=df.index)
>>>encoded_df
Gender Married x_y x_z
0 0 0 0 0
1 0 1 1 0
2 0 1 2 1
3 0 1 3 0
4 0 0 1 0
decoded_df = pd.DataFrame(
{col: encoders[col].inverse_transform(encoded_df[col]) for col in encoded_df},
index=encoded_df.index)
Gender Married x_y x_z
0 Male No 0 No
1 Male Yes 1 No
2 Male Yes 2 Yes
3 Male Yes 3+ No
4 Male No 1 No