Разница в том, что с dataset.iloc[:,1:2]
вы получите DataFrame
, а с dataset.iloc[:,-1]
вы получите Series
. Когда вы используете атрибут values
с DataFrame
, вы получаете 2d ndarray, а с Series
вы получаете 1d ndarray. Рассмотрим следующий пример:
A B C
0 0 2 0
1 1 0 0
2 1 2 1
Series:
type(df.iloc[:, -1])
# pandas.core.series.Series
df.iloc[:, -1].values.shape
# (3,)
DataFrame:
type(df.iloc[:, -1:])
# pandas.core.frame.DataFrame
df.iloc[:, -1:].values.shape
# (3, 1)
Это обычная уловка в машинном обучении для получения целевой переменной как 2dndarray за один шаг.