使用pandas_datareader获取TSLA股票数据时触发TypeError错误求助
解决pandas_datareader获取Yahoo股票数据的TypeError问题
问题根源
你遇到的TypeError: maybe_convert_dtype() got an unexpected keyword argument 'tz'是pandas与pandas_datareader版本不兼容导致的。新版pandas(2.x及以上)移除了maybe_convert_dtype函数的tz参数,但旧版pandas_datareader仍在调用该参数,引发参数冲突。
解决方法
方法1:升级pandas_datareader到最新版
新版pandas_datareader已适配pandas 2.x的API,执行以下命令升级:
pip install --upgrade pandas_datareader
升级后重新运行原代码即可。
方法2:降级pandas到兼容版本
若升级pandas_datareader后仍有问题,可将pandas降级到1.5.x系列(该版本保留了tz参数):
pip install pandas==1.5.3
方法3:改用yfinance库(推荐)
由于Yahoo官方API变更,pandas_datareader的Yahoo数据源稳定性较差,更推荐使用专门的yfinance库替代,以下是完整替代代码:
import pandas as pd import yfinance as yf import matplotlib.pyplot as plt start_date = "2020-01-01" end_date = "2020-12-31" # 获取TSLA股票数据 data = yf.download("TSLA", start=start_date, end=end_date) print(data) # 绘制收盘价走势图 close = data['Close'] ax = close.plot(title='Tesla 2020年收盘价走势') ax.set_xlabel('日期') ax.set_ylabel('收盘价') ax.grid() plt.show()
使用前需先安装yfinance:
pip install yfinance
内容的提问来源于stack exchange,提问作者Brajesh Kumar Sethi
相关产品推荐
相关产品推荐

