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

使用Pandas DataReader获取Yahoo BTC/USD数据时遇字符串索引错误怎么办?

解决Yahoo获取BTC/USD数据的TypeError问题

问题原因

你遇到的TypeError: string indices must be integers, not 'str'是因为pandas_datareader的Yahoo数据源已不再适配当前Yahoo Finance的API返回格式,解析数据时出现格式不匹配错误。另外你的代码还有一处小问题:导入datetime时用了as dt别名,但初始化start变量时用了datetime.datetime,这会触发NameError,需要一并修正。

解决步骤

  1. 安装专门适配Yahoo Finance的yfinance库(替代pandas_datareader的Yahoo模块):
pip install yfinance
  1. 修改代码,替换数据源并修正变量错误:
import pandas as pd
import yfinance as yf
import datetime as dt

crypto = 'BTC'
against_crypto = 'USD'
start = dt.datetime(2018, 1, 1)  # 修正为dt.datetime,匹配导入的别名
end = dt.datetime.now()

# 使用yfinance下载加密货币数据
data = yf.download(f'{crypto}-{against_crypto}', start=start, end=end)
# 查看数据前几行验证结果
print(data.head())
  1. 验证结果:运行代码后,data会返回包含开盘价、收盘价、成交量等标准金融字段的DataFrame,可直接用于后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:59:54