将数据提取到pandas数据框以进行机器学习的正确且最有效的方法

时间:2016-02-19 08:49:18

标签: python pandas machine-learning

给出如下数据框

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。

1 个答案:

答案 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