假设有一个如下所示的数据框
x1 x2 x3 x4 x5 x6 y2 3 4 5 5 7 11.323 4 5 3 2 3 10.99
假设数据量很大,比如有1000行。
读取这些数据并将其正确分割为X和y的最有效和高效的方法是什么?
谢谢,J.
回答:
你需要从最后一列提取值,并从其他所有列提取特征。你可以使用带有整数索引的iloc
和values
来实现这一点:
y = df.iloc[:, -1].valuesX = df.iloc[:, :-1].values
所以对于你的例子来说:
In [153]: XOut[153]:array([[2, 3, 4, 5, 5, 7], [3, 4, 5, 3, 2, 3]], dtype=int64)In [154]: yOut[154]: array([ 11.32, 10.99])
通常对于scikit-learn
方法,你可以直接传递数据框和序列,因此你可以省略values
属性:
y = df.iloc[:, -1]X = df.iloc[:, :-1]In [156]: XOut[156]: x1 x2 x3 x4 x5 x60 2 3 4 5 5 71 3 4 5 3 2 3In [157]: yOut[157]:0 11.321 10.99Name: y, dtype: float64