给出如下数据框
x1 x2 x3 x4 x5 x6 y
2 3 4 5 5 7 11.32
3 4 5 3 2 3 10.99
有更多数据,比如1000行。
将此数据读入正确的X,y分割的最有效和最有效的方法是什么?
谢谢,J。
答案 0 :(得分:3)
因此,您需要从最后一列中提取值,并从所有其他列中提取要素。您可以将iloc
与整数索引和values
一起使用:
y = df.iloc[:, -1].values
X = df.iloc[:, :-1].values
所以对你的例子来说:
In [153]: X
Out[153]:
array([[2, 3, 4, 5, 5, 7],
[3, 4, 5, 3, 2, 3]], dtype=int64)
In [154]: y
Out[154]: array([ 11.32, 10.99])
通常,对于scikit-learn
方法,您可以传递数据框和系列,因此可以省略values
属性:
y = df.iloc[:, -1]
X = df.iloc[:, :-1]
In [156]: X
Out[156]:
x1 x2 x3 x4 x5 x6
0 2 3 4 5 5 7
1 3 4 5 3 2 3
In [157]: y
Out[157]:
0 11.32
1 10.99
Name: y, dtype: float64