【发布时间】:2020-01-12 13:48:03
【问题描述】:
我正在尝试将几列字符串数据转换为数字以输入分类模型。具有一个修改列的示例数据集是:
输入:
data = [['tom', 10], ['nick', 15], ['juli', 14], ['nick', '12']]
data = pd.DataFrame(data, columns = ['Name', 'Age'])
data
输出:
Name Age
0 tom 10
1 nick 15
2 juli 14
3 nick 12
我意识到 scikit learn 不能很好地处理字符串数据,但现在我真的更愿意继续使用它,如果可能的话(公司限制)。但是,我的问题是,如果我使用
sklearn.preprocessing.LabelEncoder
我可以使用 '.classes_' 来获取一些数值,例如:
输入:
le = preprocessing.LabelEncoder()
le.fit(data['Name'])
le.classes_
vals = le.transform(le.classes_)
vals
我明白了
输出:
array([0, 1, 2])
由于这个数组只包含三个值,我不能用
数据['名称'] = vals
因为我的列长度是 4,而我的 vals 长度是 3。
考虑到这一点,我是否有另一种方法可以在 scikit-learn 中解决这个问题,还是我唯一的选择是使用不同的库?
【问题讨论】:
-
vals = le.transform(data['Name'])
标签: python pandas scikit-learn classification decision-tree