【问题标题】:How can I select a column from a DataFrame so that it has the shape (n, 1) instead of (n,)?如何从 DataFrame 中选择一列,使其具有 (n, 1) 而不是 (n,) 的形状?
【发布时间】:2019-02-05 15:00:27
【问题描述】:

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

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

但我必须将获得的一维数组( with shape=(n,) )重塑为形状 (n, 1) 才能被回归.fit() 函数接受:

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

否则会报错:

bmi_life_model = LinearRegression()
bmi_life_model.fit(X, y)

laos_life_exp = bmi_life_model.predict([[21.07931]])
 
>>>>
ValueError: Found arrays with inconsistent numbers of samples: [  1 163]
None

我也可以在定义 X 时当场重塑,但它几乎相同。我觉得这个重塑步骤很乏味,所以我认为必须有更好的方法。我试图找到它,但我发现的只是矩阵和一维数组之间的区别,这是有用的信息,但没有回答我的问题。

【问题讨论】:

    标签: pandas reshape sklearn-pandas numpy-ndarray


    【解决方案1】:

    这应该有效:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2018-05-25
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多