【发布时间】:2021-11-06 10:48:42
【问题描述】:
我有一个这样的数据集:
Entity Year Mean
0 Afghanistan 2016 0.99
1 Africa 2016 0.99
2 Albania 2016 0.99
3 Algeria 2016 0.99
4 Americas 2016 0.99
... ... ... ...
11346 World 1961 0.05
11347 Yemen 1961 0.05
11348 Yugoslavia 1961 0.05
11349 Zambia 1961 0.05
11350 Zimbabwe 1961 0.05
我需要在这个数据集中编码实体列。我在 sklearn 中使用了 OneHotEncoder。这是我的代码:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
x_yam = np.array(ct.fit_transform(x_yam))
但在编码后它给了我这样的东西:
(0, 0) 1.0
(0, 229) 2016.0
(0, 230) 0.99
(1, 1) 1.0
(1, 229) 2016.0
(1, 230) 0.99
(2, 2) 1.0
(2, 229) 2016.0
(2, 230) 0.99
(3, 3) 1.0
(3, 229) 2016.0
(3, 230) 0.99
(4, 4) 1.0
(4, 229) 2016.0
(4, 230) 0.99
(5, 5) 1.0
(5, 229) 2016.0
(5, 230) 0.99
(6, 6) 1.0
(6, 229) 2016.0
(6, 230) 0.99
(7, 7) 1.0
(7, 229) 2016.0
(7, 230) 0.99
(8, 8) 1.0
: :
我不能将这些数据用于我的 ML 模型,那么如何正确使用 OneCodeEncoder 对我的数据进行编码?
【问题讨论】:
标签: python numpy scikit-learn