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

遍历pandas Series填充label列表触发KeyError,寻求解决方案

解决pandas Series遍历的KeyError问题

嘿,你遇到的KeyError: (0, 218)问题根源很明确:当你用ageNew.items()遍历Series时,每次循环拿到的i是一个**(索引, 值)的元组**(比如示例里的(0, 218)),这时候你再用ageNew[i]去取值,自然找不到对应的索引,就触发了KeyError。

下面给你几种修复方案,从基础到高效都有:

方案1:正确拆解items()的返回值

直接把元组拆成索引和对应的值,不用再通过索引去取值:

label = []
for idx, age in ageNew.items():
    val = 0 if age <= 100 else 1
    label.append(val)

方案2:直接遍历Series的值

如果你不需要用到索引,直接遍历Series本身就会拿到每个元素的值,代码更简洁:

label = []
for age in ageNew:
    val = 0 if age <= 100 else 1
    label.append(val)

方案3:用pandas矢量化操作(推荐)

pandas最擅长的就是矢量化运算,比循环高效太多,尤其是数据量较大的时候:

# 一步到位生成label列表
label = (ageNew > 100).astype(int).tolist()

原理是:

  • ageNew > 100生成布尔Series,大于100为True,否则为False
  • astype(int)把True转成1,False转成0
  • tolist()把Series转成普通列表,和循环结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:26:11