如何从DataFrame中选择列,使其形状为(n,1)而不是(n,)?

时间:2019-02-05 15:00:27

标签: pandas reshape sklearn-pandas numpy-ndarray

我将数据框的两列分开以分别用作特征和标签:

 const Typed = (key, type, parent = class {}) => class Typed extends parent {
   constructor(...props) {
    super(...props);
     this[`_${key}`] = new type();
   }

  get [key]() { return this[`_${key}`]; }

  set [key](value) { 
      this[`_${key}`] = value instanceof type ? value : Object.assign(new type, value);
  }
}

const A = Typed("foo", Foo, Typed("bar", Bar, class {
 //...
});

但是我必须将获得的一维数组(具有shape =(n,))整形为形状(n,1),以便它可以被return.fit()函数接受:

X = bmi_life_data['BMI']
y = bmi_life_data['Life expectancy']

否则我会收到错误消息:

X = X.values.reshape(len(X), 1)

在定义X时,我也可以在现场重塑形状,但几乎相同。我认为此重塑步骤很繁琐,因此我认为必须有更好的方法。我试图找到它,但是发现的只是矩阵和一维数组之间的区别,这是有用的信息,但确实回答了我的问题。

1 个答案:

答案 0 :(得分:0)

这应该有效:

X = bmi_life_data[['BMI']]
y = bmi_life_data[['Life expectancy']]