我正在尝试构建一个随机森林分类器,以基于不同的属性确定对象的“类型”。我在理解iloc
并从分类中分离出预测变量时遇到了麻烦。如果第50列是'type'列,我想知道为什么iloc
(注释掉)行不起作用,而y = dataset["type"]
行却起作用。我已附上以下代码。谢谢!
X = dataset.iloc[:, 0:50].values
y = dataset["type"]
#y = dataset.iloc[:,50].values
答案 0 :(得分:0)
让我们假设数据框中的第一列被命名为“ 0”,随后的列也因此被命名。像下面几行的结果一样
last_col=50
tab=pd.DataFrame([[x for x in range(last_col)] for c in range(10)])
现在,请尝试tab.iloc[:,0:50]
-它将起作用,因为您使用了切片来选择列索引。
但是,如果您尝试使用tab.iloc[:,50]
-它将不起作用,因为没有索引为50的列。
通过索引对其进行切片和选择只是有些不同。从熊猫文档中: .iloc []主要是基于整数位置(从0到轴的长度1)
我希望有帮助。