我想用 Python 收集 S&P500 中每只股票的所有歷史價格。我正在使用來自 IEX Cloud 的軟體包,它為我提供了單個股票的歷史價格。我想要一個 for 回圈遍歷股票指數中的代碼/符號串列,以便我在單個 DataFrame 中獲取所有資料。
這是生成 DataFrame 的代碼 - 在此示例中,我選擇了 AAPL 為期兩年:
import pyEX as p
sym = 'AAPL'
stock_list = stocks['Ticker'].tolist()
c = p.Client(api_token='TOKEN', version='stable')
timeframe = '2y'
df = c.chartDF(symbol=sym, timeframe=timeframe)[['close']]
df
此 DataFrame 包含日期和每日收盤價。現在你們有任何想法如何遍歷我的代碼串列,以便我獲得所有歷史價格的綜合資料框嗎?
謝謝你。
uj5u.com熱心網友回復:
遍歷所有代碼后,創建一個空串列以將所有內容附加并連接在一起
import pyEX as p
import pandas as pd
stock_list = stocks['Ticker'].tolist()
c = p.Client(api_token='TOKEN', version='stable')
timeframe = '2y'
dfs = [] # create an empty list
for sym in stock_list: # iterate over your ticker list
df = c.chartDF(symbol=sym, timeframe=timeframe)[['close']] # create your frame
dfs.append(df) # append frame to list
final_df = pd.concat(dfs) # concat all your frames together into one
使用 Try-Except 更新
import pyEX as p
import pandas as pd
stock_list = stocks['Ticker'].tolist()
c = p.Client(api_token='TOKEN', version='stable')
timeframe = '2y'
dfs = [] # create an empty list
for sym in stock_list: # iterate over your ticker list
try:
df = c.chartDF(symbol=sym, timeframe=timeframe)[['close']] # create your frame
dfs.append(df) # append frame to list
except KeyError:
print(f'KeyError for {sym}')
final_df = pd.concat(dfs) # concat all your frames together into one
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525772.html
上一篇:根據一些相似的列合并兩個資料框
