You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas_datareader调用Yahoo数据源时触发TypeError错误求助

解决pandas_datareader调用Yahoo Finance出现的TypeError: string indices must be integers错误

这个错误不是你的代码存在低级问题,而是pandas_datareader的Yahoo数据源已无法适配Yahoo Finance最新的API结构——Yahoo近期调整了接口返回格式,导致旧的web.DataReader解析逻辑失效,进而抛出该类型错误。

你已经导入了yfinance库,这正是合适的替代方案,直接用它获取数据即可,修改后的代码如下:

import numpy as np
import pandas as pd
import yfinance as yf
import datetime as dt

tickers = ['BAC','JPM','C','NSRGY']
start_date = dt.datetime(2019,2,1)
end_date = dt.datetime(2019,12,30)
# 使用yfinance的download方法替代pandas_datareader
data = yf.download(tickers, start=start_date, end=end_date)

补充说明:

  • yf.download返回的数据结构和web.DataReader获取的Yahoo数据结构完全一致,无需修改后续的处理逻辑
  • 如果想保留pandas_datareader的调用习惯,也可以启用yfinance的兼容接口:
    from pandas_datareader import data as pdr
    yf.pdr_override()  # 启用兼容模式
    data = pdr.get_data_yahoo(tickers, start=start_date, end=end_date)
    

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:31:03