如何使用pandas_datareader读取AAPL股票数据及报错处理
问题原因及解决方法
你遇到的'module' object is not callable报错核心由两类问题导致,按以下步骤修复即可正常运行:
1. 修复datetime导入错误
你当前导入的是整个datetime模块,直接调用datetime()相当于把模块作为函数执行,必然触发该报错。两种修复方案二选一:
- 方案1:导入模块下的datetime类
# 原代码 import datetime 替换为以下行 from datetime import datetime start = datetime(2017, 1, 1) end = datetime(2018, 1, 1)
- 方案2:保留原导入逻辑,调用时指定类路径
import datetime start = datetime.datetime(2017, 1, 1) end = datetime.datetime(2018, 1, 1)
2. 适配雅虎财经接口
当前pandas_datareader原生的get_data_yahoo接口已官方弃用,需要配合yfinance库使用:
- 先安装依赖:
pip install yfinance pandas-datareader - 在代码开头添加适配代码,覆盖原有雅虎接口实现:
import yfinance as yf yf.pdr_override()
修复后完整可运行代码
import pandas_datareader as web from datetime import datetime import yfinance as yf yf.pdr_override() start = datetime(2017, 1, 1) end = datetime(2018, 1, 1) df = web.get_data_yahoo(['AAPL'], start=start, end=end) # 测试输出前5行数据 print(df.head())
内容的提问来源于stack exchange,提问作者Abdullah
相关产品推荐
相关产品推荐

