使用pandas_datareader获取BTC-USD数据时遇TypeError错误求助
问题排查与解决方案
错误原因
pandas_datareader的雅虎财经数据源已停止维护,当前调用pdr.get_data_yahoo()返回的是HTML字符串而非预期的DataFrame,后续尝试以DataFrame的方式访问数据时,就会触发「TypeError: string indices must be integers」错误。
解决方法
推荐使用yfinance库替代,它是专门针对雅虎财经API维护的第三方库,兼容性和稳定性更好。
- 安装yfinance库:
pip install yfinance
- 修改后的代码:
import yfinance as yf # 获取2020-01-01至2021-01-01的BTC-USD数据 df = yf.download("BTC-USD", start="2020-01-01", end="2021-01-01") print(df.head())
备选方案(不推荐)
如果坚持使用pandas_datareader,可以尝试安装适配的扩展包,但稳定性无法保证:
pip install pandas-datareader[yahoo]
之后重新运行原代码,但仍可能因雅虎API的变动再次出现问题。
内容的提问来源于stack exchange,提问作者jack gell
相关产品推荐
相关产品推荐

