在 fit_transform 之后获取 sklearn.LabelEncoder() 映射

use*_*511 5 python python-3.x scikit-learn

我正在尝试获取标签编码器的映射,以找出哪些代码获取了 df 中某一列的每个字符串。

这是编码代码:

y[:]=LabelEncoder().fit_transform(y[:])
Run Code Online (Sandbox Code Playgroud)

我想得到这样的输出:

A:1
B:2
C:3
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

cs9*_*s95 4

如果您希望稍后能够使用映射或逆变换,则应该避免内联初始化。

data = ['A', 'A', 'B', 'C', 'B', 'B'] # `y`

le = LabelEncoder()
mapped = le.fit_transform(data)

mapping = dict(zip(le.classes_, range(1, len(le.classes_)+1)))
print(mapping)
# {'A': 1, 'B': 2, 'C': 3}
Run Code Online (Sandbox Code Playgroud)

更好的是,如果您想反转编码,请使用inverse_transform

print(le.inverse_transform(mapped))
# ['A' 'A' 'B' 'C' 'B' 'B']
Run Code Online (Sandbox Code Playgroud)