【发布时间】:2020-02-16 09:00:39
【问题描述】:
为了划分测试训练数据:
x_train, x_test, y_train, y_test = train_test_split(X, y,test_size = 0.25, random_state = 0)
Method 1:
X = dataset.loc[np.r_[0:5, 7:26]].values
y = dataset.loc[np.r_[6]].values
Method 2:
X = dataset.loc[:, ['x1', 'x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x12','x13','x14','x15','x16','x17','x18','x19','x20','x21','x22','x23','x24','x25','x26']].values
y = dataset.loc[:, ['y']].values
第一种方法遇到这个问题:
ValueError: Found input variables with inconsistent numbers of samples: [24, 1]
第二个没问题。我不喜欢写所有的专栏,但我不知道如何解决第一种方法的问题。
另外,由于数据是字符串,我遇到了这个错误:
ValueError: could not convert string to float: 'id8053'
我试图解决:
X = X.apply(lambda x: pd.factorize(x)[1])
y = y.apply(lambda x: pd.factorize(x)[0])
但我遇到了这个错误:
AttributeError: 'numpy.ndarray' object has no attribute 'apply'
怎么了?
【问题讨论】:
-
你为什么不用 iloc 来做 X?
标签: python-3.x pandas numpy multidimensional-array scikit-learn