将预测结果合并到数据框中
Merge predicted results into dataframe
在我预测的数据框中有三列,我想将所有这三列与原始数据集合并。我怎样才能做到这一点?
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)
我得到的错误是 "Exception: Data must be 1-dimensional"
您正在尝试将 y_pred1
中的 3 列分配给数据框 testcase
中的单个列。这就是错误的根源。您将必须在数据框中使用三个不同的目标列来分配三个预测列。
因此,例如,如果您的 y
在数据中具有三个唯一的 类(标签),则 predict_proba()
输出(在本例中为 y_pred1
)将是形状 [n, 3]
.
您可以通过多种方式将此二维数组组合到现有数据框:
简单方法:分别分配每一列
testcase['procurement_class0'] = y_pred1[:,0]
testcase['procurement_class1'] = y_pred1[:,1]
testcase['procurement_class2'] = y_pred1[:,2]
其他方式:在这里查看这些问题:
- Pandas: Assigning multiple *new* columns simultaneously
在我预测的数据框中有三列,我想将所有这三列与原始数据集合并。我怎样才能做到这一点?
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)
我得到的错误是 "Exception: Data must be 1-dimensional"
您正在尝试将 y_pred1
中的 3 列分配给数据框 testcase
中的单个列。这就是错误的根源。您将必须在数据框中使用三个不同的目标列来分配三个预测列。
因此,例如,如果您的 y
在数据中具有三个唯一的 类(标签),则 predict_proba()
输出(在本例中为 y_pred1
)将是形状 [n, 3]
.
您可以通过多种方式将此二维数组组合到现有数据框:
简单方法:分别分配每一列
testcase['procurement_class0'] = y_pred1[:,0]
testcase['procurement_class1'] = y_pred1[:,1]
testcase['procurement_class2'] = y_pred1[:,2]
其他方式:在这里查看这些问题:
- Pandas: Assigning multiple *new* columns simultaneously