我在pandas dataframe上拟合sklearn模型,然后尝试在每行上预测它。由于拟合和预测维数不同,我面临以下误差。
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
iris_dict = load_iris()
X = pd.DataFrame(iris_dict['data'])
y = pd.Series(iris_dict['target'])
clf = LogisticRegression()
clf.fit(X, y)
y_pred = clf.predict(X.loc[0,:])
字符串
单行预测给我一个错误
Expected 2D array, got 1D array instead:
型
我怎么能预测每一只Pandas的排,一次只。我试过整形,但没有成功
2条答案
按热度按时间pzfprimi1#
Sklearn使用columns,主要使用numpy。你的
X.loc[0,:]
是一个序列,这意味着当它被转换为numpy时,它是一个一维数组。我相信简单地调用X.loc[0,:].to_numpy().reshape(1,-1)
就行了ovfsdjhp2#
尝试
y_pred = clf.predict(X.loc[[0]])
,应该可以,因为双方括号返回的是一个数据框架而不是一个系列。