会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 数据分析获取Yahoo股票数据:使用pandas-datareader时遇到一些问题问题(cannot import name ‘is_list_like‘ 问题)!

数据分析获取Yahoo股票数据:使用pandas-datareader时遇到一些问题问题(cannot import name ‘is_list_like‘ 问题)

时间:2024-04-28 11:57:37 来源:接连不断网 作者:百科 阅读:952次

数据分析获取Yahoo股票数据:使用pandas-datareader时遇到一些问题问题(cannot import name ‘is_list_like‘ 问题)

1 安装pandas-datareader依赖包:

因为,我电脑上之前已经安装了python3.6,先学习了爬虫,所以已经有了python环境。数据现在学习数据科学数据分析,再安装了anaconda,为了不使我电脑环境出现混乱,安装anaconda后,就没有把anaconda的分析环境变量写到系统环境变量中,那么安装第三方等要用命令式的操作就要到安装目录的路径中去打开cmd:

1.1 使用anaconda的python环境

在anaconda安装的根目录,打开cmd,输入python,此时就是执行的anaconda的python环境。

1.2 使用conda命令安装依赖包,或者查看依赖等要conda 执行的票数命令

使用conda命令:需要到Anaconda3- >Library ->bin路径下执行(打开cmd)

在上述的目录中打开cmd,执行conda命令,如安装依赖包conda install pandas-datareader等

                                                                           查看anaconda环境中的依赖包:conda list;

2 使用pandas-datareader

2.1 导入pandas_datareader出现错误:cannot import name 'is_list_like'

出现这个,我们可以查看import 导入出错的原因:

里面说了一个文件fred.py文件,我们还不知道什么原因导致的,查找网上的解决方法,发现一个有效的方式,修改下该文件的一条语句:

原fred.py文件 到开头import中第一句是这个  from pandas.core.common import is_list_like

我们将这个句修改成:from pandas.api.types import is_list_like  

在回到import,发现导入成功。

2.2 使用pandas_datareader获取雅虎Yahoo股票数据,发现出错,

pandas_datareader.get_data_yahoo('BABA')

里面的据使已经说了原因,这个api接口已经被弃用了,查了下资料,发现可能是2017yahoo被Verizon收购的原因。

但是用p遇网上又有了新的解决方案:

我们需要额外安装另一个依赖包:fix_yahoo_finance(再conda install下吧)

安装成功后 import fix_yahoo_finance as fy

from pandas_datareader import data as pdr
 
import fix_yahoo_finance as yf
yf.pdr_override() #需要调用这个函数
 
# 获取数据
data = pdr.get_data_yahoo("SPY", start="2017-01-01", end="2017-04-30")
data = pdr.get_data_yahoo(["SPY", "IWM"], start="2017-01-01", end="2017-04-30")

Tips:在conda install fix_yahoo_finance,有可能会遇到PackageNotFoundError: ''Package missing in current channels",找不到安装包的方式(安装其他依赖包也可能)

解决方法1:

查找你要安装的依赖包

anaconda search -t conda 你要安装的包如yahoo 

(如果环境变量中没有添加anaconda的python变量,则要在安装的scripts下执行)

如图,可以看到查找到的安装包(模糊搜索的结果),当然可能搜索不到这个包,如一开始那个(最上面没框起来的部分)

如果找到了,那就可以看到下面一行字 anaconda show <USER/PACKAGE> 这是用来进一步查看你要安装的安装信息的。

如,我选择了一个进行查看

anaconda show postelrich/yahoo-finance

前面会给出这个包的问题问题问题一些信息,最后面会给出如何进行安装的目录,复制它,在来conda就可以了:

 conda install --channel https://conda.anaconda.org/postelrich yahoo-finance

解决方法2:本地安装

也就是上面遇到,搜索不到你要安装的依赖包,怎么办?那就下载文件下来,进行本地安装啊。

如,我在获取股票时,以前常用pandas-datareaderr从yahoo的数据接口获取股票的数据,但是可惜现在没办法了,接口被移除了。

网上一搜发现了一个fix_yahoo_finance包可以实现以前的分析操作,所以立马去conda fix_yahoo_finance,发现安装不了,anaconde search也找不到这个包,所以,我就去fix_yahoo_finance api的网站上找到源文件的下载地址,下载到本地中。

文档:https://pypi.org/project/fix-yahoo-finance/

下载地址:

https://files.pythonhosted.org/packages/0a/96/d44330e427f5368cb8abd25997b72956a31b52073d285c4d5cd56e5fdc17/fix-yahoo-finance-0.0.22.tar.gz

依赖包,下载解压之后,发现里面有个文件setup.py

有他就好办了,我们可以通过本地来安装这个包啊,怎么安装

cd到fix_yahoo_finance目录中,使用 python setup.py install安装,它就会自动安装这个依赖到环境中。票数

不要被我的据使pythonana迷惑了,这是因为,我电脑同时安装两个python,前文提过,所以我把一个python的命令改成了pythonana,这样就不会让我的python打架。如果你没有改,可以忽视,请大胆的用p遇使用python安装即可。

到此,我们使用:

from pandas_datareader import data as pdr
 
import fix_yahoo_finance as yf
yf.pdr_override() #需要调用这个函数
 
# 获取数据
data = pdr.get_data_yahoo("SPY",问题问题问题 start="2017-01-01", end="2017-04-30")
data = pdr.get_data_yahoo(["SPY", "IWM"], start="2017-01-01", end="2017-04-30")

可以正常的获取yahoo中的股票数据,而且请求网络获取数据也较为稳定。

数据

(责任编辑:娱乐)

相关内容
  • 激战2当下版本大型DP盗贼思路手法详解
  • 谁主浮沉   第三章 他是陈小刀
  • 透明エレジー
  • 阿玛尼、古驰童装上“黑榜”
  • 首  页
  • 0204年立春查询
  • 阿玛尼、古驰童装上“黑榜”
  • 透明エレジー
推荐内容
  • 腾讯QQ领跑中国即时通讯 最高同时在线人数突破700万
  • 谁主浮沉   第三章 他是陈小刀
  • 传世歌诀:农历十月出生人的命运简析
  • 传世歌诀:农历十月出生人的命运简析
  • 送爸爸礼物50岁
  • 0204年立春查询