pandas_datareader.wb属性错误求助:无pandas_datareader属性
解决AttributeError: module 'pandas_datareader.wb' has no attribute 'pandas_datareader'
嘿,这个问题我之前帮同事排查过,错得很典型!问题完全出在你读取股票数据的那一行代码上,咱们一步步来修正:
错误根源
你写的wb.pandas_datareader(ticker,'yahoo',start,end)是完全错误的调用方式:
wb是pandas_datareader里专门用来获取世界银行经济数据的模块,和你要的雅虎股票数据根本不相关pandas_datareader本身并没有嵌套在wb模块里,所以才会抛出"属性不存在"的错误
修正后的完整代码
直接用data.DataReader来获取雅虎财经数据就可以了,同时我帮你优化了一些细节:
from pandas_datareader import data import datetime import talib import numpy as np # 行业习惯用np代替numpy import matplotlib.pyplot as plt # 确保图表能正常显示 start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2014, 3, 24) ticker = "AAPL" # 核心修正:用data.DataReader读取雅虎股票数据 f = data.DataReader(ticker, 'yahoo', start, end) # TA-Lib支持直接传入pandas Series,不用转numpy数组 f['SMA_20'] = talib.SMA(f['Close'], 20) f['SMA_50'] = talib.SMA(f['Close'], 50) # 绘制并显示图表 f.plot(y=['Close', 'SMA_20', 'SMA_50'], title='AAPL Close & Moving Averages') plt.show()
额外注意事项
- 如果运行时碰到雅虎数据源报错,大概率是pandas_datareader的接口更新了,你可以升级到最新版本:
pip install --upgrade pandas-datareader - TA-Lib如果是源码安装的,要确保已经正确编译,不然计算均线时可能会抛出其他错误
内容的提问来源于stack exchange,提问作者Sile
相关产品推荐
相关产品推荐

