То есть df
- это загруженный фрейм данных, cdf
- это еще один фрейм с выбранными столбцами, а train
- выбранные строки.
train[['ENGINESIZE']]
- это фрейм данных с 1 столбцом (я думаю, train['ENGINESIZE']
будет pandas Series).
Я считаю, что предпочтительный синтаксис для получения массива из кадра данных:
train[['ENGINESIZE']].values # or
train[['ENGINESIZE']].to_numpy()
, хотя
np.asanyarray(train[['ENGINESIZE']])
должен делать то же самое.
Копая код regr.fit
, я вижу, что он вызывает sklearn.utils.check_X_y
, что, в свою очередь, вызывает sklearn.tils.check_array
. Это заботится о преобразовании входных данных в numpy массивы, с некоторой осведомленностью об pandas особенностях фрейма данных (таких как множественные dtypes).
Таким образом, получается, что если fit
принимает ваши фреймы данных, вы не Не нужно конвертировать их заранее. Но если вы можете получить из массива данных хороший массив, в этом нет никакого вреда. В любом случае сопоставление выполняется с массивами, полученными из кадра данных.