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

如何修复使用Pandas DataReader时出现的string indices类型错误

解决pandas_datareader获取Yahoo股票数据报错的问题

问题原因

这个错误是因为Yahoo Finance的API接口已更新,旧版本的pandas_datareader自带的Yahoo数据源无法正常解析返回的数据结构,导致字符串索引操作失败。

解决方法

直接使用yfinance库替代pandas_datareader的Yahoo数据源,步骤如下:

  1. 安装yfinance库
    执行命令:

    pip install yfinance
    
  2. 修改代码
    替换原有的pandas_datareader调用逻辑,改用yfinance获取数据,示例代码:

    import pandas as pd
    import yfinance as yf
    import datetime as dt
    
    # 定义时间范围
    start_date = '2021-04-15'
    end_date = '2023-04-14'
    
    # 获取MSFT股票数据
    df = yf.download('MSFT', start=start_date, end=end_date)
    print(df.head())
    
  3. 验证结果
    运行修改后的代码,会返回标准的DataFrame格式,包含Open、High、Low、Close、Adj Close、Volume等常规股票数据列。

补充说明

如果一定要继续使用pandas_datareader,可以通过yfinance作为数据源适配器,代码如下:

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

# 覆盖pandas_datareader的Yahoo数据源
yf.pdr_override()

start_date = '2021-04-15'
end_date = '2023-04-14'
df = pdr.get_data_yahoo('MSFT', start=start_date, end=end_date)
print(df.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:53:14