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

Alpha_vantage调用报错:KeyError: 'close'问题求助

解决Alpha Vantage获取股票数据时的KeyError: 'close'问题

看起来你遇到的问题核心是Alpha Vantage返回的DataFrame列名和你预期的不匹配,在旧版本的Alpha Vantage库配合Pandas 0.23.0使用时,API返回的列名是带编号前缀的格式,而非你写的'close'。我给你几个具体的解决步骤:

步骤1:先确认返回数据的实际列名

在尝试提取'close'列之前,先打印出返回DataFrame的列名,明确正确的列标识:

from alpha_vantage.timeseries import TimeSeries 
import pandas as pd 

print('Pandas_Version: ' + pd.__version__) 
symbol = 'GOOGL' 
ts = TimeSeries(key='4BTFICZGTPWZRRQS', output_format='pandas')
# 完整获取数据和元数据
data, meta_data = ts.get_daily(symbol=symbol, outputsize='full')
# 打印列名
print("返回数据的列名:", data.columns)

运行这段代码后,你应该会看到类似这样的列名:['1. open', '2. high', '3. low', '4. close', '5. volume']——这就是问题所在,你要找的收盘价列是'4. close'而非'close'。

步骤2:使用正确的列名提取数据

知道正确列名后,修改你的代码即可:

close = data['4. close']

这样就能成功提取收盘价数据,后续的direction和target计算逻辑也能正常运行。

步骤3:(可选)重命名列方便后续操作

如果觉得带编号的列名不方便,可以一次性重命名所有列,让后续代码更简洁:

data.columns = ['open', 'high', 'low', 'close', 'volume']
# 之后就可以直接用'close'访问了
close = data['close']

额外提示

Pandas 0.23.0是比较旧的版本,后续如果遇到更多兼容性问题,你可以考虑升级到更稳定的1.x系列版本,但当前问题的核心是列名不匹配,按上面的步骤就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:34:54