使用datareader’读取Yahoo财经数据

本文解决在Python环境下使用pandas读取雅虎财经数据遇到的问题,包括模块迁移至pandas_datareader及API变动导致的数据获取失败。通过安装fix_yahoo_finance模块并调整调用方式,成功实现数据下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境

window10、Python3.6

二、问题

在《利用Python进行数据分析》一书中,学习到pandas这一章节,利用书中的方法去获取雅虎数据会出现以下问题:
问题一

    import pandas.io.data as web
 Traceback (most recent call last):
   File "<pyshell#0>", line 1, in <module>
       import pandas.io.data as web  
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\pandas\io\data.py", line 2, in <module>    "The pandas.io.data module is moved to a separate package "
   ImportError: The pandas.io.data module is moved to a separate package (pandas-datareader). 
   After installing the pandas-datareader package (https://github.com/pydata/pandas-datareader), you can change the import ``from pandas.io import data, wb`` to ``from pandas_datareader import data, wb``.        

跟据提示,我们很快可以知道,‘pandas.io’这个模块已经变成了‘pandas_datareader’了,cmd命令行中执行以下语句即可解决这个问题:

pip install pandas_datareader

用以下语句可以调用模块

import pandas_datareader.data as web

第二个问题又来了。初步认为是由于雅虎受中国市场限制所导致的,接下来讲解解决方法。
问题二:

web.get_data_yahoo('AAPL','1/1/2000','1/1/2010')
Traceback (most recent call last): 
 File "<pyshell#2>", line 1, in <module>
     web.get_data_yahoo('AAPL','1/1/2000','1/1/2010')
 File "C:\Program Files (x86)\Python36-32\lib\site-packages\pandas_datareader\data.py", line 63, in get_data_yahoo   
     raise ImmediateDeprecationError(DEP_ERROR_MSG.format('Yahoo Actions'))
pandas_datareader.exceptions.ImmediateDeprecationError: 
Yahoo Actions has been immediately deprecated due to large breaks in the API without the introduction of a stable replacement. Pull Requests to re-enable these data connectors are welcome. 
See https://github.com/pydata/pandas-datareader/issues 

这里我们需要引入另外一个模块‘fix_yahoo_finance’,同样使用pip方法进行安装

pip install fix_yahoo_finance    

调用方式如下:

import pandas_datareader.data as web
import datetime
import fix_yahoo_finance as yf

yf.pdr_override() 
start=datetime.datetime(2006, 10, 1)
end=datetime.datetime(2012, 1, 1)
web.get_data_yahoo('AAPL',start,end)    

这样子就可以下载雅虎数据了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值