如何使用pandas_datareader库?运行代码遇TypeError报错求助
解决pandas_datareader调用get_data_yahoo时报TypeError的问题
问题根源:pandas_datareader原生的Yahoo Finance数据源接口已停止维护,直接调用
pdr.get_data_yahoo()会返回字符串而非预期的DataFrame,后续操作因此触发"string indices must be integers"错误。解决步骤:
- 安装并升级yfinance库(Yahoo官方推荐的第三方数据获取库,兼容原接口逻辑):
pip install yfinance --upgrade - 调整代码适配新数据源:
方式一:保留pandas_datareader调用习惯
方式二:直接使用yfinance原生方法(更稳定)from pandas_datareader import data as pdr import yfinance as yf import datetime as dt # 覆盖pandas_datareader的Yahoo接口,改用yfinance实现 yf.pdr_override() start_date = dt.datetime(2021, 1, 1) end_date = dt.datetime(2021, 12, 31) df = pdr.get_data_yahoo('AAPL', start=start_date, end=end_date) print(df.head())import yfinance as yf import datetime as dt start_date = dt.datetime(2021, 1, 1) end_date = dt.datetime(2021, 12, 31) df = yf.download('AAPL', start=start_date, end=end_date) print(df.head()) - 运行代码后,会正常返回包含AAPL股价数据的DataFrame,错误即可解决。
- 安装并升级yfinance库(Yahoo官方推荐的第三方数据获取库,兼容原接口逻辑):
内容的提问来源于stack exchange,提问作者Harlei Akira
相关产品推荐
相关产品推荐

