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

如何使用Alpha Vantage API的Python代码指定起止日期提取AAPL每日收盘价

如何用Alpha Vantage API指定起止日期获取AAPL每日收盘价

嘿,我来帮你搞定这个问题!首先得纠正你代码里的一个小失误——你写的data - ts.get_daily(...)应该改成data, meta_data = ts.get_daily(...),因为get_daily方法会返回数据对象和元数据对象两个结果,少了这个赋值的话代码会报错哒。

接下来要说明的是:Alpha Vantage的API本身并没有直接支持指定起止日期的参数,所以我们得先获取完整的日线数据,再用Pandas来筛选出你需要的日期范围。下面是修正后的完整代码:

from alpha_vantage.timeseries import TimeSeries  # 注意这里是alpha_vantage,不是alpha.vantage哦
import pandas as pd

api_key = '你的API密钥'  # 记得把这里替换成你自己的Alpha Vantage API密钥
ts = TimeSeries(key=api_key, output_format='pandas')

# 获取AAPL的完整日线历史数据,outputsize='full'会返回所有可用的历史数据
data, meta_data = ts.get_daily('AAPL', outputsize='full')

# 把索引的字符串日期转换成datetime类型,这样才能进行日期范围筛选
data.index = pd.to_datetime(data.index)

# 定义你需要的起止日期,然后筛选出这段时间的收盘价(Alpha Vantage里收盘价列名为'4. close')
start_date = '2020-01-01'
end_date = '2021-06-30'
filtered_close_data = data.loc[start_date:end_date, ['4. close']]

# 给列名改个更直观的名字,方便后续使用
filtered_close_data.rename(columns={'4. close': 'AAPL_Daily_Close'}, inplace=True)

# 打印结果
print(filtered_close_data)

几个关键点要注意:

  • Alpha Vantage返回的DataFrame索引是YYYY-MM-DD格式的字符串,必须先转成datetime类型,才能用loc进行日期切片筛选。
  • 收盘价对应的列名是'4. close',你可以通过print(data.columns)查看所有列的名称,确认字段是否正确。
  • 如果你只需要最近100条数据,可以把outputsize='full'改成outputsize='compact',但因为你需要的时间跨度超过100天,所以必须用full来获取完整历史数据。

另外,如果你需要复权后的收盘价,可以用get_daily_adjusted方法,筛选逻辑和上面是完全一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:17:31