0

我正在编写一个应用程序来跟踪输入电子表格的股票数据。pandas_datareader.tiingo.TiingoDailyReader我目前通过调用每个符号来使其工作。数据阅读器能够获取符号列表并一次提取这些符号的所有数据。我更喜欢这个,因为我可以拨打一个电话然后查询它返回的数据帧。

我遇到的问题是当一个符号被除名或不存在时,这会导致整个调用失败,从而导致一个空的数据帧。通过对照 Tiingo 支持的符号列表检查所有符号,我已经解决了这个问题。但是,这并不完美,因为我遇到了一个支持符号但没有我请求的日期数据的实例。

有没有办法一次调用所有符号并让数据读取器跳过这些错误或不返回问题符号的数据?

谢谢,

4

1 回答 1

0

我认为您应该在运行数据采集之前检查符号以及开始和结束日期。参考来自官方参考

import urllib.request
import pandas as pd
import io

url = 'https://apimedia.tiingo.com/docs/tiingo/daily/supported_tickers.zip'
zip_tickers = urllib.request.urlopen(url).read()
zip_tick = io.BytesIO(zip_tickers)

with zipfile.ZipFile(zip_tick) as myzip:
    csv_data = myzip.extract('supported_tickers.csv')  

df = pd.read_csv(csv_data, sep=',')

df
    ticker  exchange    assetType   priceCurrency   startDate   endDate
0   000001  SHE Stock   CNY 2007-08-30  2020-09-11
1   000002  SHE Stock   CNY 2000-01-04  2020-09-11
2   000003  SHE Stock   CNY NaN NaN
3   000004  SHE Stock   CNY 2007-08-31  2020-09-11
4   000005  SHE Stock   CNY 2001-01-02  2020-09-11
... ... ... ... ... ... ...
87303   ZZK NYSE ARCA   Stock   USD 2020-07-22  2020-09-11
87304   ZZLL    OTCBB   Stock   USD 2017-09-26  2020-09-11
87305   ZZLLD   OTCBB   Stock   USD 2017-10-06  2017-10-30
87306   ZZZ NYSE ARCA   Stock   USD 2014-10-31  2020-09-11
87307   ZZZOF   PINK    Stock   USD 2017-09-22  2020-09-11
87308 rows × 6 columns
于 2020-09-13T03:42:03.727 回答