You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码:将循环传入iloc索引行改为传入class_zero行并打印预测

搞定这个需求很简单,看这里!

原来你是用iloc[n]指定单行索引来做预测,现在要改成遍历class_zero里的每一行,逐个输出预测结果对吧?我给你整理了具体的实现方式:

核心思路

先确保class_zero是你从原DataFrame里筛选好的目标子集(比如标签为0的行),然后直接遍历这个子集的每一行,对每行执行预测,最后把结果打印出来就行。

代码示例(直接能用的那种)

假设你的预测模型是model,原数据集是df,class_zero是筛选后的DataFrame,代码可以这么写:

# 先确认class_zero的筛选逻辑(这里以标签列label=0为例,你可以根据自己的实际情况改)
class_zero = df[df['label'] == 0]

# 遍历class_zero里的每一行
for row_idx, single_row in class_zero.iterrows():
    # 把单行数据转成模型需要的输入格式(因为大部分模型要求输入是二维数组,所以要reshape一下)
    input_features = single_row.values.reshape(1, -1)
    # 执行预测
    pred_result = model.predict(input_features)
    # 打印结果,你可以自定义打印内容,比如行索引、预测值,甚至该行的特征数据
    print(f"行索引 {row_idx} 的预测结果:{pred_result[0]}")
    # 如果需要看该行的具体特征,可以加下面这行
    # print(f"对应特征数据:{single_row.to_dict()}")

几个要注意的小细节

  • 如果你的class_zero里包含标签列(比如用来筛选的那列),记得在转输入特征的时候把标签列去掉,比如改成input_features = single_row.drop('label').values.reshape(1, -1)
  • iterrows()会返回每行的索引和对应的行数据(Series类型),用values转成数组再reshape,是为了符合模型输入的格式要求(必须是(n_samples, n_features)的二维结构)
  • 要是你的class_zero已经是处理好的纯特征集(没有标签列),那直接用single_row.values.reshape(1, -1)就ok

这样改完之后,就不用手动指定行索引n了,程序会自动把class_zero里的每一行都跑一遍预测,并且打印出每一行的结果~

内容的提问来源于stack exchange,提问作者user9238790

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:43:40