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

如何用Python从Morningstar获取调整后收盘价?及无法获取该数据的求助

解决Morningstar获取调整后收盘价的问题

嘿,我来帮你搞定这两个和Python获取Morningstar股票数据相关的问题!

一、如何用Python从Morningstar获取调整后收盘价?

如果你用的是pandas_datareader库,其实步骤很直接——只要指定数据源为morningstar,然后从返回的数据集里提取对应的调整后收盘价字段就行。我给你写个完整的可运行示例:

import pandas as pd
from datetime import datetime
import pandas_datareader.data as web

# 设定你需要的时间范围
start = datetime(2015, 2, 9)
end = datetime(2017, 5, 24)

# 获取单只股票数据,这里以苹果(AAPL)为例
stock_data = web.DataReader('AAPL', 'morningstar', start, end)

# 提取调整后收盘价,注意字段名是`Adj Close`
adjusted_close = stock_data['Adj Close']

# 打印前几行看看结果
print(adjusted_close.head())

Morningstar返回的数据集一般包含Open、High、Low、Close、Volume、Adj Close这些字段,所以直接提取Adj Close列就能拿到调整后收盘价了。

二、排查无法获取调整后收盘价的原因

结合你给出的代码片段,我梳理了几个最可能的原因,你可以逐一排查:

  • 字段名称拼写/格式错误:你可能在提取数据时用了错误的字段名,比如写成Adjusted Close而不是Adj Close,或者大小写没匹配上。先运行下面的代码确认所有可用字段:

    print(stock_data.columns)
    

    看看输出里有没有Adj Close这个字段。

  • pandas_datareader版本过旧:旧版本的pandas_datareader对Morningstar数据源的支持可能有问题,字段名或者接口逻辑可能有变化。建议先升级到最新版本:

    pip install --upgrade pandas-datareader
    
  • 股票代码格式不正确:Morningstar的股票代码有时候需要加上交易所后缀才能正常返回完整数据,比如美股的纳斯达克股票要加.XNAS,纽交所股票加.XNYS。你可以试试调整代码里的股票代码:

    stock_data = web.DataReader('AAPL.XNAS', 'morningstar', start, end)
    
  • 数据源本身的限制:部分股票或者特定时间范围内,Morningstar的公开API可能不提供调整后收盘价数据,或者需要认证权限。你可以换一只知名股票(比如MSFT)或者调整时间范围测试一下,排除这个可能性。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:25:46