Alpha Vantage stockinfo 只收集 4 个格式正确的 dfs,而不是 6 个

Alpha Vantage stockinfo only collects 4 dfs properly formatted, not 6

我可以从 Alpha Vantage 获得 4 个股票信息,然后其他 DataFrames 无法获得我要求的股票信息。因此,我生成的串联 df 被解释为 Nonetype(因为前 4 个 df 的格式与后 2 个不同)。这不是我的问题。我只收到 4 个请求的事实是......如果我能解决这个问题 - 生成的串联 df 将完好无损。

我的代码

import pandas as pd
import datetime
import requests
from alpha_vantage.timeseries import TimeSeries
import time

tickers = []

def alvan_csv(stocklist):
    api_key = 'demo'   # For use with Alpha Vantage stock-info retrieval.
    for ticker in stocklist:
        #data=requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=%s&apikey={}'.format(api_key) %(ticker))
        df = pd.read_csv('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&datatype=csv&symbol=%s&apikey={}'.format(api_key) %(ticker))#, index_col = 0)  &outputsize=full
        df['ticker'] = ticker
        tickers.append(df)
        # concatenate all the dfs
        df = pd.concat(tickers)
        print('\ndata before json parsing for === %s ===\n%s' %(ticker,df))
        df['adj_close'] = df['adjusted_close']
        del df['adjusted_close']
        df['date'] = df['timestamp']
        del df['timestamp']
        df = df[['date','ticker','adj_close','volume','dividend_amount','split_coefficient','open','high','low']] #
        df=df.sort_values(['ticker','date'], inplace=True)
        time.sleep(20.3)
    print('\ndata after col reshaping for === %s ===\n%s' %(ticker,df))
    return df


if __name__ == '__main__':
    stocklist = ['vws.co','nflx','mmm','abt','msft','aapl']

    df = alvan_csv(stocklist)

注意。请注意,要使用 Alpha Vantage API,您需要一个免费的 API-密钥,您可以在此处获得:https://www.alphavantage.co/support/#api-key 将演示 API 密钥替换为您的 API 密钥以使此代码正常工作。

关于让它工作的任何想法?

显然,Alpha Vantage 的合理使用限额非常低,他们衡量的是查询次数 pr。分钟。所以实际上只允许前 4 只股票全速运行。其余的股票需要在下载前暂停,以确保不违反其合理使用政策。

我现在在我的股票查询之间引入了暂停。如果我暂停 10 秒,我现在可以获得大约 55% 的库存。在通话之间,如果我暂停 15 秒,则为 100%。

我将测试究竟可以将暂停设置为多低,以允许 100% 的股票通过。

我必须说,与我们在 finance.yahoo.com 时的超高速火车相比,这让我觉得这是蒸汽火车。下载真的很慢。要获得价值 500 的股票代码,我需要 2.5 小时。但我想乞丐不会挑剔。这是一项免费服务,我会处理的。