【发布时间】:2018-11-24 21:16:52
【问题描述】:
我正在学习机器学习并尝试使用 Iris 数据集编写自己的代码。
我用 pandas 打开数据集,然后我试图在我的数据集中传递一个字典,以将最后一列从 Strings 转换为 Int 但是当尝试这个时:
dataset.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'class']
class_mapping = {'Iris-setosa': 1, 'Iris-versicolor': 2, 'Iris-virginica': 3}
for classe in dataset :
classe['class'] = classe['class'].map(class_mapping)
PyCharm 向我返回:TypeError: string indices must be integers
【问题讨论】:
-
你可以这样做
dataset['class'] = dataset['class'].map(class_mapping) -
现在,不是打印'Iris-setosa',而是打印'NaN'。我不明白为什么,但至少它有效。
-
出于好奇,你为什么要这样做?您是否尝试创建虚拟变量?
-
@Dillon 没有。我刚刚完成了一门机器学习课程,我有一个项目需要训练我的代码。它有 15 种不同的输出值(字符串)/标记数据。我正在设法找到最佳选择,而不是直接对我的项目进行编码,而是在这个 Iris 数据集中实现所有内容,这是我课程的模块之一,我习惯于工作,或者至少我知道结果。跨度>
标签: python pandas dictionary dataset indices