使用pandas_datareader从Stooq获取数据返回空DataFrame求助
问题分析与解决方案
问题原因
pandas_datareader 0.10.0版本的Stooq数据源适配逻辑已失效——Stooq在2023年4月调整了接口结构,旧版本库未同步更新,导致调用DataReader时无法正确解析返回内容,最终返回空DataFrame。
解决方案
方案1:升级pandas_datareader到最新版本
执行以下命令升级库,新版本已修复Stooq接口的适配问题:
pip install --upgrade pandas_datareader
升级后原测试代码即可正常运行。
方案2:手动构造请求获取数据(无需升级库)
如果暂时不想升级库,可以直接调用Stooq的CSV下载接口,用pandas.read_csv读取数据:
import pandas as pd # 构造Stooq的CSV下载链接,s参数为股票代码(美股需加.us后缀) url = "https://stooq.com/q/d/l/?s=aapl.us&i=d" data = pd.read_csv(url, index_col='Date', parse_dates=True) # 反转数据顺序,和原pandas_datareader返回格式一致 data = data.iloc[::-1] print(data)
内容的提问来源于stack exchange,提问作者Chris Child
相关产品推荐
相关产品推荐

