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

使用pandas_datareader获取FB股价遇TypeError错误求助

解决pandas_datareader获取Meta(原Facebook)股价时的TypeError问题

错误原因

这个TypeError: string indices must be integers错误,本质是pandas_datareader内置的Yahoo Finance数据源接口早已失效,返回的是非结构化字符串数据而非预期的可索引DataFrame,导致代码尝试用索引访问字符串时触发错误。另外需要注意:Facebook已更名为Meta Platforms,股票代码从FB改为META,继续用FB可能无法获取有效数据。

解决方案

推荐使用官方替代库yfinance来获取Yahoo Finance数据,步骤如下:

  1. 安装yfinance库
pip install yfinance
  1. 修改代码获取数据

方式一:直接使用yfinance(更简洁)

import yfinance as yf
import datetime as dt

company = 'META'  # 注意股票代码已变更为META
start = dt.datetime(2012, 1, 1)
end = dt.datetime.now()

# 获取股价数据,返回标准DataFrame
data = yf.download(company, start=start, end=end)

方式二:结合pandas_datareader使用yfinance

如果习惯用pandas_datareader的调用方式,可以通过yf.pdr_override()让其适配yfinance数据源:

import pandas_datareader.data as pdr
import yfinance as yf
import datetime as dt

# 覆盖pandas_datareader的Yahoo接口
yf.pdr_override()

company = 'META'
start = dt.datetime(2012, 1, 1)
end = dt.datetime.now()

data = pdr.get_data_yahoo(company, start=start, end=end)

验证结果

运行上述代码后,data会是包含Open、High、Low、Close、Adj Close、Volume列的DataFrame,可正常进行后续分析操作,不会再触发类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:07:05