我是一个业余的程序员。我想了解以下两者之间的区别:
X = np.array(df.drop([predict], 1))
y = np.array(df[predict])
和我以前在ML模型中使用的常规代码
X= data.drop(columns=[predict])
y=data[predict]
我试图预测学生的成绩,最后我遵循的代码使用下面的预测,然后是原始属性和实际分数:
for x in range(len(predictions)):
print(predictions[x], x_test[x], y_test[x])
但这似乎只在第一组代码用于删除列时才起作用,而不是第二组代码,因为我得到KeyError
= 0?
1条答案
按热度按时间vh0rcniy1#
让我解释一下
在第一行中,它从dataframe
df
中删除predict
列,然后将剩余的dataframe转换为numpy数组并分配给变量X
。类似地,df
的predict
列被选择并转换为numpy数组并分配给变量y
。现在让我们看看评分代码:
这是试图打印三个numpy数组的元素,我假设它们是从早期的
X
和y
numpy数组中获得的。在循环中,x
用于索引所有三个numpy数组。由于代码是以索引和获取每个元素的方式编写的,因此我们需要numpy数组格式的X
和y
。让我们看看第二个代码:
这里的
X
是pandas dataframe,y
是pandas series。因此,我们不能像索引numpy数组那样索引它们,所以它不起作用。