【发布时间】:2017-03-08 00:00:43
【问题描述】:
在使用教程完成了一些课程和示例之后,我尝试创建我的第一个机器学习模型。我从这里得到了训练数据:https://raw.github.com/pydata/pandas/master/pandas/tests/data/iris.csv,我正在使用 panda 来加载这个 csv 数据。
主要问题是预测列是字符串,所有算法都使用浮点数。
当然,我可以手动映射所有带有数字 (0,1,2) 的字符串并使用更改的文件,但我尝试找出一种方法来使用 panda 或 scikit-learn 自动替换字符串值并将它们映射到单独的数组中.
我的代码是:
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression
data = pd.read_csv("https://raw.github.com/pydata/pandas/master/pandas/tests/data/iris.csv")
data.head()
features_cols = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth']
X = df[features_cols]
y = data.Name
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=1)
linreg = LinearRegression()
linreg.fit(X_train, y_train)
看到的错误是:
ValueError: could not convert string to float: 'Iris-setosa'
如何使用 panda 将“名称”列中的所有值替换为整数?
【问题讨论】:
标签: python pandas scikit-learn