将预测结果合并到数据框中

时间:2018-10-20 13:33:20

标签: python-3.x pandas scikit-learn sklearn-pandas

在预测的数据框中,我有三列,我想将所有这三列与原始数据集合并。我该如何实现?

ds = pd.read_csv("final10.csv")
X = ds.iloc[:, 3:-4].values
y = ds.iloc[:,-1].values
testcase = pd.read_csv("testcase.csv")
testcase=testcase.iloc[:,3:-1].values

from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(solver="newton-cg", multi_class='multinomial')
clf.fit(X, y)
y_pred1 = clf.predict_proba(testcase)
testcase['procurement']=pd.Series(y_pred1)

我得到的错误是“异常:数据必须是一维的”

1 个答案:

答案 0 :(得分:0)

您正在尝试将y_pred1中的3列分配给数据帧testcase中的单个列。那就是错误的根源。您将必须在数据框中使用三个不同的目标列来分配三个预测列。

例如,如果您的y在数据中具有三个唯一的类(标签),则predict_proba()输出(在这种情况下为y_pred1)的形状为{{1} }。

您可以通过多种方式将此二维数组与现有数据框组合在一起:

简单方法:分别分配各列

[n, 3]

其他方式:在这里查看这些问题: