python出现错误
#基于回归补充缺失数据
import pandas as pd
import numpy as np
Sinfo=pd.DataFrame({"ID":['001','002','003','004','005','006','007','008','009','010'],
"weight":['55','54','51','45','67','68','67','68','67','55'],
"height":[np.nan,'165',np.nan,'160','170','168','167','162','169','166']})
# Sinfo
#删除缺失数据
Sinfonew=Sinfo.dropna(how='any',inplace=False)
#建立回归模型
from sklearn.linear_model import LinearRegression
model=LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
model.fit(Sinfonew['weight'].values.reshape(-1,1),
Sinfonew['height'].values.reshape(-1,1))
y1=model.predict(55)
y1
#纠正
y1=model.predict([[55]])
#结果;
array([[164.27066636]])
出现报错信息
ValueError: Expected 2D array, got scalar array instead:
array=55.
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
纠正:
由于sklearn版本更新后,数据维度不一致导致,把55 改为二维数组[[55]] 即可。