为何我的股市预测代码出现TypeError: string indices must be integers错误?
解决「TypeError: string indices must be integers」问题
这个错误的核心原因是pandas_datareader原生的雅虎数据源已失效——雅虎财经API接口变更后,原方法返回的不再是结构化的DataFrame数据,而是字符串,代码尝试用索引访问字符串内容时触发类型错误。
解决方案:
方案一:直接使用yfinance库(推荐)
yfinance是专门适配雅虎财经新接口的库,稳定性更强。
先安装依赖:pip install yfinance替换后的代码:
import yfinance as yf df = yf.download('AAPL', start='2012-01-01', end='2019-12-17')方案二:保留pandas_datareader,搭配yfinance适配器
如果你不想替换原有库结构,可以用yfinance提供的适配器兼容旧代码:
先安装依赖:pip install pandas_datareader yfinance修改后的代码:
import pandas_datareader as web import yfinance as yf yf.pdr_override() # 启用适配器,让DataReader调用yfinance的接口 df = web.DataReader('AAPL', start='2012-01-01', end='2019-12-17')
两种方案执行后,df都会返回包含开盘价、收盘价、成交量等字段的标准DataFrame,可直接用于后续的股市走势预测工作。
内容的提问来源于stack exchange,提问作者alon
相关产品推荐
相关产品推荐

