在其余 DataFrame 没有获得我要求的股票信息之前,我可以从 Alpha Vantage 获得 4 个股票信息代码。所以我得到的串联 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-Key,您可以在此处选择:https ://www.alphavantage.co/support/#api-key 用您的 API 密钥替换演示 API 密钥以制作此代码有效。
有什么想法可以让它发挥作用吗?