向包含聚合数据的Pandas数据框添加新列

afdcj2ne  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(112)

我实现了自己的K折交叉验证(有一个特殊情况需要处理),并且我需要将预测及其置信度保存为新列。
1-在每次迭代中:test_predictions = clf.predict(X_test)
2-将perditions与真实数据进行比较:

treatments = test_fold.loc[:, 'treatment'].unique().tolist()
idx = df.index[df['treatment'].isin(treatments)].tolist()

并尝试将这些值保存到一个新列中,但我在每次迭代中只有一个测试折叠的值,而不是整个数据集的值,所以它没有工作:

df.iloc[idx]['new_col'] = (y_test == test_predictions)

其中,y_test是选择用于测试的折叠的标签数据(将真实的标签数据与分类器预测进行比较)
如何从每次迭代中聚合对应于每个测试折叠的正确索引的所有预测,然后在结束时将其保存为原始数据框上的新列(或在每次迭代期间每次保存一个部分)?

hfsqlsce

hfsqlsce1#

您可以使用每次迭代的检查结果创建一个数组:

results = [y_test[i] == test_predictions[i] for i in range(len(y_test))]

之后,您需要通过索引选择治疗对象,并通过loc写入结果:

df.loc[df[df['treatment'] in treatments ].index, 'new_col'] = results

(The必须提前创建new_col列)

相关问题