这是我正在运行的代码:
def competitor_stock_data_report():
import datetime
import pandas_datareader.data as web
date_time = datetime.datetime.now()
date = date_time.date()
stocklist = ['LAZ','AMG','BEN','LM','EVR','GHL','HLI','MC','PJT','MS','GS','JPM','AB']
start = datetime.datetime(date.year-1, date.month, date.day-1)
end = datetime.datetime(date.year, date.month, date.day-1)
for x in stocklist:
df = web.DataReader(x, 'google', start, end)
print(df)
print(df.loc[df['Date'] == start]['Close'].values)
Run Code Online (Sandbox Code Playgroud)
问题出在最后一行。如何提取指定日期“收盘”值的具体值?
Open High Low Close Volume
Date
2016-08-02 35.22 35.25 33.66 33.75 861111
2016-08-03 33.57 34.72 33.42 34.25 921401
2016-08-04 33.89 34.22 33.77 34.07 587016
2016-08-05 34.55 34.94 34.31 34.35 463317
2016-08-08 34.54 34.75 34.31 34.74 958230
2016-08-09 …Run Code Online (Sandbox Code Playgroud) 我尝试从 iex 或 Morningstar 检索历史财务数据。为此,我使用以下代码。
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2019, 1, 1)
end = datetime.datetime(2019, 1, 10)
facebook = web.DataReader("FB", 'morningstar', start, end)
print(facebook.head())
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到错误消息:
NotImplementedError:data_source='morningstar' 未实现
或者
ValueError:必须通过 api_key 变量或环境变量 IEX_API_KEY 提供 IEX Cloud API 密钥
取决于我使用的两个来源中的哪一个。
我尝试过了
pip uninstall pandas-datareader
pip install pandas-datareader
Run Code Online (Sandbox Code Playgroud)
多次并重新启动内核,但没有任何变化。这个 API 是否有任何变化或者我做错了什么?
我在使用v0.8.1 包时遇到问题。pandas-datareader为了解决我的问题,我必须通过运行以下命令将软件包升级到较新的版本 0.9:
conda install -c anaconda pandas-datareader
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我稍后尝试使用命令升级 conda 软件包时conda update --all,pandas-datareader被降级回 v0.8.1。v0.8.1来自 conda-forge 频道。我想要的是来自 anaconda 频道的v0.9 。
当我运行时,如何强制 conda 始终将 pandas-datareader 升级到 anaconda 通道中的最新版本conda update --all?
我在 Windows 10 上使用 python anaconda 2020_07 版本。
我有以下代码。我尝试从雅虎和谷歌获取数据,但都不起作用。它抛出以下消息
from pandas_datareader.data import Options
fb_options = Options('TSLA', 'yahoo')
options_df = fb_options.get_options_data(expiry=fb_options.expiry_dates[0])
print(options_df.tail())
Run Code Online (Sandbox Code Playgroud)
错误消息:由于 API 中存在大量中断,并且没有引入稳定的替代品,Yahoo Options 已立即被弃用。欢迎请求重新启用这些数据连接器。
还有其他方法可以检索期权价格吗?
一段时间以来,我一直在使用 pandas_datareader 从 IEX 和 Robinhood API 检索股票价格,没有出现任何问题。然而,最近(本周初),我的代码开始失败。
这是代码和错误:
应用程序编程接口
import pandas_datareader.data as web
import datetime as dt
end = dt.datetime.today()
start = end - relativedelta(months=20)
data = web.DataReader('MSFT', 'iex', start, end)
Run Code Online (Sandbox Code Playgroud)
和错误:
web.DataReader('MSFT', 'iex', start, end)
Traceback (most recent call last):
File "<ipython-input-88-2781d4515d5c>", line 1, in <module>
web.DataReader('MSFT', 'iex', start, end)
File "/anaconda3/lib/python3.7/site-packages/pandas_datareader/data.py", line 322, in DataReader
session=session).read()
File "/anaconda3/lib/python3.7/site-packages/pandas_datareader/iex/daily.py", line 91, in read
self._get_params(self.symbols))
File "/anaconda3/lib/python3.7/site-packages/pandas_datareader/base.py", line 84, in _read_one_data
out = self._read_url_as_StringIO(url, params=params)
File "/anaconda3/lib/python3.7/site-packages/pandas_datareader/base.py", line 95, …Run Code Online (Sandbox Code Playgroud) 是否可以从 pandas datareader 获取股票的公司名称。例如我可以使用此代码来输出公司的数据:data = web.DataReader(stock, 'yahoo',start, end)。我如何获得 的股票代码Fb名称Facebook?
如果 pandas-datareader 不提供此功能,我该如何获取公司名称?
python ×4
pandas ×2
python-3.x ×2
anaconda ×1
conda ×1
conda-forge ×1
elixir-iex ×1
trading ×1