如何将多分类predict_proba预测概率追加到pandas DataFrame
多分类预测概率拆分写入DataFrame实现方案
你可以直接将predict_proba返回的二维概率数组按列赋值到原DataFrame,无需额外转列表操作,具体实现步骤如下:
- 第一步:修正预测逻辑
注意clf.predict_proba()的入参需要是符合模型输入要求的特征矩阵,不能直接传入文件路径,先加载测试数据再执行预测:
import pandas as pd # 加载测试集 test = pd.read_csv("test.csv") # 剔除非特征字段(比如示例里的customer_id,按你的实际字段调整) X_test = test.drop(columns=["customer_id"]) # 执行预测得到概率二维数组 y_proba = clf.predict_proba(X_test)
- 第二步:按列写入概率值
生成对应类别列名后,直接将概率数组赋值给DataFrame的新列即可,pandas会自动按行对齐:
# 按类别数量生成class_1、class_2...格式的列名 class_columns = [f"class_{i+1}" for i in range(y_proba.shape[1])] # 批量赋值概率列 test[class_columns] = y_proba
- 第三步:(可选)提取目标格式结果
如果只需要保留客户ID加各类别概率的结构,直接筛选列即可:
final_result = test[["customer_id"] + class_columns]
注意:如果你需要严格对齐模型内部的类别顺序,可以通过
clf.classes_属性获取模型训练时的类别排序,用这个属性生成列名可以避免概率列和类别对应错位:class_columns = [f"class_{label}" for label in clf.classes_]
执行后得到的final_result就完全匹配你给出的目标格式,每一列单独存储对应类别的预测概率,行顺序和原测试集样本完全一致。
内容的提问来源于stack exchange,提问作者Madam PC
相关产品推荐
相关产品推荐

