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

无需循环如何通过pandas Series索引列表为DataFrame新增列?

实现方法

你可以直接用pandas内置的map()方法完成匹配,全程不需要手动写循环,代码如下:

import pandas as pd

# 先定义你的类别名称列表
class_names = ['Black Sea Sprat', 'Gilt-Head Bream', 'Hourse Mackerel', 'Red Mullet',
               'Red Sea Bream', 'Sea Bass', 'Shrimp', 'Striped Red Mullet', 'Trout']

# 新增实际类别名称列:因为原始类别编号是1~8,列表索引从0开始,所以先减1再匹配
Result['Actual Class Name'] = (Result['Actual Classes'] - 1).map(class_names.__getitem__)
# 新增预测类别名称列
Result['Predicted Class Name'] = (Result['Predicted Classes'] - 1).map(class_names.__getitem__)

可选简化写法

如果你已经导入numpy,也可以用矢量化索引的方式实现,逻辑完全一致:

import numpy as np
Result['Actual Class Name'] = np.array(class_names)[Result['Actual Classes'] - 1]
Result['Predicted Class Name'] = np.array(class_names)[Result['Predicted Classes'] - 1]

逻辑说明

  • 原始类别列取值为1~8,而Python列表的下标从0开始,所以先对列值做减1处理得到合法的列表索引
  • 两种实现都是pandas/numpy的内置矢量化操作,运行效率远高于手动写Python层级的循环

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 17:03:00