python获取软件数据_用Python获取Yahoo数据

用Python获取Yahoo数据

发布时间:2018-06-11 18:42,

浏览次数:587

, 标签:

Python

Yahoo

在学python机器学习,网上找了实战教程,有需要从yahoo获取股票数据,但一开始就遇到问题了,折腾了一天。以下给出问题以及解决方法。

编程环境:Linux Ubuntu16, python3.6, anaconda 1.6.14, conda 4.5.4, pandas 0.23

============================================================================

问题1:下载pandas _datareader时出现环境解释出错

因为yahoo数据需要通过pandas _datareader模块获取,所以需要下载安装此包

用conda install pandas

_datareader出现环境解析错误(因为用的是anaconda建立python编译和编辑环境的,所有用到conda安装):

python@ubuntu:~$ conda install pandas_datareader Solving environment: failed

PackagesNotFoundError: The following packages are not available from current

channels: - pandas_datareader Current channels: -

https://repo.anaconda.com/pkgs/main/linux-64 -

https://repo.anaconda.com/pkgs/main/noarch -

https://repo.anaconda.com/pkgs/free/linux-64 -

https://repo.anaconda.com/pkgs/free/noarch -

https://repo.anaconda.com/pkgs/r/linux-64 -

https://repo.anaconda.com/pkgs/r/noarch -

https://repo.anaconda.com/pkgs/pro/linux-64 -

https://repo.anaconda.com/pkgs/pro/noarch To search for alternate channels that

may provide the conda package you're looking for, navigate to

https://anaconda.org and use the search bar at the top of the page.

解决一:然后改用pip install pandas _datareader可以成功安装!

解决二:后来发现,我在用conda安装改模块时,jupyter notebook还在运行,所以尝试关掉之后再次用conda install pandas

_datareader发现已经可以成功安装了。

问题2:使用import pandas_datareader as pdr时出现ImportError:cannot import name

'is_list_like'

网上找了好多方法,包括在stackflow上面的案列,始终找不到适合我的方法。

解决一:然后放弃网上搜寻解决方案,改为自己摸索。因为出现的错误提示是不能导入名为‘is_list_like’模块,所以找到出错的代码处在fred.py模块中的第一行from

pandas.core.common.data import

is_list_like,因为在环境中找不到common文件夹和该文件夹下面的模块,所以出现导入is_list_like时该路径出错。

随后,百度查找:panda is_list_like找到pandas 官方api文档

,点击source

可以进入到源代码模块。最后发现is_list_like在以下路径中是以一个方法存在的

最后,我改掉了fred.py的第一行导入路径,变为:from pandas.core.dtype.inference import

is_list_like,再次导入pandas_datareader模块时成功了!

问题3:运行如下代码时,出现ImmediateDeprecationError,即此时Yahoo!

Finance已经不存在了,因为2017年Yahoo!被Verizon收购了

Yahoo Daily has been immediately deprecated due to large breaks in the API

without the introduction of a stable replacement

代码如下:

import pandas as pd import datetime import pandas_datareader.data as web start

= datetime.datetime(2010,1,1) end = datetime.datetime(2017,1,1) df =

web.get_data_yahoo('SPY','yahoo',start, end)

百度找到了一个在CSDN博客中的解决办法之一:安装fix_yahoo_finance(pip install),然后在获取数据前运行以下代码即可。

import fix_yahoo_finance as fy fy.pdr_override()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值