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

使用pandas_datareader从Yahoo获取数据时触发TypeError报错求助

解决pandas_datareader运行时的TypeError问题

问题重现

运行以下代码时触发TypeError: string indices must be integers错误:

import datetime as dt
import pandas_datareader as web

symbol = "FB"
start = dt.datetime(2020,1,1)
end = dt.datetime(2022,1,1)

df = web.Datareader(symbol, "yahoo", start,end)

错误原因及解决方案

1. 方法名大小写错误

代码中web.Datareader拼写错误,正确方法名为**web.DataReader**(第二个字母R需大写)。大小写错误会导致调用非预期对象,进而触发字符串索引相关的类型错误。

2. Yahoo数据源兼容问题

当前pandas_datareader原生Yahoo数据源已停止维护,需通过yfinance库做兼容适配:

  • 安装yfinance库:
    pip install yfinance
    
  • 原标的"FB"已更名为"META",需同步修改避免获取不到数据。

修正后的完整代码

import datetime as dt
import pandas_datareader as web
import yfinance as yf

# 启用pandas_datareader与yfinance的兼容模式
yf.pdr_override()

symbol = "META"
start = dt.datetime(2020, 1, 1)
end = dt.datetime(2022, 1, 1)

# 使用正确方法名调用
df = web.DataReader(symbol, "yahoo", start, end)
# 验证结果
print(df.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:29:57