Label Encoder如何分配相同的数字?

How does Label Encoder assigns the same number?

我的数据框中有该列

city 

London
Paris
New York 
.
.

我正在对列进行标签编码,它将 0 分配给 London ,将 1 分配给 Paris ,将 2 分配给 New York 。但是当我为模型的预测传递单个值时,我给出了城市名称 New York 并将 0 分配给它。如何保持不变,我希望如果纽约值在训练阶段通过标签编码器分配 2,它应该在预测时再次分配 2。

Code
from sklearn.preprocessing import LabelEncoder
labelencoder=LabelEncoder()
df['city']=labelencoder.fit_transform(df['city'])

您需要使用 fitfit_transform 来适应编码器,然后 transform 在您要编码的数据上获得标签(如果您这样做 fit_transform 在那个数据上,它会重新拟合编码器,如果你只传递一个值,它会被编码为 0):

df['label'] = labelencoder.fit_transform(df['city'])
# df
#        city  label
# 0    London      0
# 1     Paris      2
# 2  New York      1
labelencoder.transform(['New York'])
# array([1])