During/After one-hot 编码,是否可以用另一列的值代替二进制标志?

During/After one-hot encoding, is it possible to have another column's value instead of the binary flag?

我想知道是否有任何方法可以在单热编码后将我的分类列转换为来自另一列的值,而不是现有类别之一中的二进制“1”?

我的数据框如下所示:

ID  Location    Amount  Quantity
1   TEXAS       12342   1
2   CALIFORNIA  23423   4

标签和单热编码后,我得到了这个:

ID  Location_TEXAS  Location_CALIFORNIA    Amount   Quantity
1   1                  0                   12342    1
2   0                  1                   23423    4

是否可以在编码列中使用金额而不是二进制值?

想要的结果:

ID  Location_TEXAS  Location_CALIFORNIA    Amount   Quantity
1   12342                  0                12342   1
2   0                      23423            23423   4

之后,我可以完全删除金额列。

这是我用于标签编码和one-hot编码的代码:

 from sklearn.preprocessing import LabelEncoder, OneHotEncoder 
 labelencoder_X = LabelEncoder()
 X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
 onehotencoder = OneHotEncoder(categorical_features = [0])
 X = onehotencoder.fit_transform(X).toarray()

如果可行,请告诉我。任何帮助将不胜感激。

这会破坏 one-hot 编码状态变量的目的。 OHE 的想法是,对于每个观察,只有一个编码特征是 "hot"。

此外,这会使您的状态和数量特征线性不可分,这将不允许模型独立于位置权重改变数量权重。如果没有非常具体的理由,我会说这不是一个好主意。