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

Jupyter可正常运行的代码在Google Colab执行报KeyError如何解决

问题根因
  • 你定义的stocksv只有两个元素['AAPL', 'NDAQ'],Python列表索引从0开始计数,有效索引仅为0、1,你使用stocksv[2:3]做切片时,起始索引已经超出了列表的最大下标,会返回空列表
  • 空列表经过join拼接后得到的是空字符串,后续用空字符串去returnsall的列名中匹配取值,自然触发KeyError: ''报错
Jupyter环境运行正常的原因

你在Jupyter环境中给stocksv赋值时,列表内的元素数量应该大于等于3,索引2的位置有对应的有效股票代码,切片后可以拿到实际值,因此不会触发报错。迁移代码到Colab时,你大概率漏掉了stocksv的其他元素定义。

修复方案

根据你的需求调整切片逻辑即可:

  • 取第一个股票用stocksv[0:1],取第二个股票用stocksv[1:2]
  • 如果要统计所有股票的情况,可以直接遍历stocksv列表,不需要做切片拼接
    修复后的参考代码:
stocksv = ['AAPL', 'NDAQ']
returnsall=data1['Adj Close'].pct_change()
returnsall = returnsall.dropna()*100
values= [2,5,10,15,20]
print('This year: \n')
# 遍历所有股票统计
for stock in stocksv:
    print(f'--- 股票${stock}统计 ---')
    for z in values:
        seriesObj = returnsall.apply(lambda x: True if x[stock] > z else False , axis=1)
        numOfRows = len(seriesObj[seriesObj == True].index)
        print(f'${stock} has been up more than {z}% on {numOfRows} days')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:03