【发布时间】:2020-07-02 07:56:41
【问题描述】:
我有一份构成 ETF 的股票清单。我已将代码格式化为列表并将此变量命名为 assets
print(assets)
['AUD', 'CRWD', 'SPLK', 'OKTA', 'AVGO', 'CSCO', 'NET', 'ZS', 'AKAM', 'FTNT', 'BAH', 'CYBR', 'CHKP', 'BA/', 'VMW', 'PFPT', 'PANW', 'VRSN', 'FFIV', 'JNPR', 'LDOS', '4704', 'FEYE', 'QLYS', 'SAIC', 'RPD', 'HO', 'MIME', 'SAIL', 'VRNS', 'ITRI', 'AVST', 'MANT', 'TENB', '053800', 'ZIXI', 'OSPN', 'RDWR', 'ULE', 'MOBL', 'ATEN', 'TUFN', 'RBBN', 'NCC', 'KRW', 'EUR', 'JPY', 'GBP', 'USD']
我使用下面的 for 循环 遍历列表并从 yahoo 中提取历史数据
for i in assets:
try:
df[i] = web.DataReader(i, data_source='yahoo', start=start, end=end)['Adj Close']
except RemoteDataError:
print(f'{i}')
continue
我回来了:
BA/
4704
H0
053800
KRW
JPY
在雅虎财经上找不到这些资产。我理解这种情况并接受。
当我在 yahoo Finance 上查找理论上已经找到的股票(例如 df['FEYE'])时,我得到以下信息。
0 NaN 1 NaN 2 NaN 3 NaN 4 NaN 5 NaN 6 NaN 7 NaN 8 NaN 9 NaN 10 NaN 11 NaN 12 NaN 13 NaN 14 NaN 15 NaN 16 NaN 17 NaN 18 NaN 19 NaN 20 NaN 21 NaN 22 NaN 23 NaN 24 NaN 25 NaN 26 NaN 27 NaN 28 NaN 29 NaN 30 NaN 31 NaN 32 NaN 33 NaN 34 NaN 35 NaN 36 NaN 37 NaN 38 NaN 39 NaN 40 NaN 41 NaN 42 NaN 43 NaN 44 NaN 45 NaN 46 NaN 47 NaN 48 NaN
名称:FEYE,数据类型:float64
当我只用一个共享正常进行时
(例如CSCO = web.DataReader(assets[5], data_source='yahoo', start=start, end=end)['Adj Close'])
一切都好。
非常感谢任何帮助,
谢谢!
【问题讨论】:
-
我无法复制“FEYE”的错误。您要检索什么日期范围?
-
我的开始日期是 2016 年 1 月 1 日,结束日期是 2020 年 6 月 1 日。根据我的经验,无论如何,它将默认为该时间范围内的最大窗口。我也认为这可能是一个问题,但我使用了相同的日期变量 CSCO 示例。
-
我刚刚在你的代码中循环下载了“FEYE”数据,那么错误是什么?
-
感谢您尝试 ipj。我仍然收到 NaN 列表,我已上传错误照片。也许我叫错了,也许图片会有所帮助。
-
在我的
df索引中只是日期而不是整数。你能分享df.head()的结果吗?
标签: python loops nan yahoo stock