[英]How can i append a list to a dataframe via for loop in a for loop
我做了一個 for 循環,它使用股票行情列表來獲取日收盤價。 收集后,我要求代碼將數據存儲在數據幀中。 這工作正常,但我無法創建一種一遍又一遍地附加數據幀的方法,因此我只剩下一個大數據幀。 有人可以幫忙嗎? 請注意,API 連接允許一定數量的調用 pr。 分鍾,所以如果通話失敗,應該有一個時間延長 - 我試圖解釋這一點。 請看下面的代碼:
C20 = ['AMBU-B.CPH','MAERSK-B.CPH']
df = pd.DataFrame()
def getdata(symbol_input):
for i in symbol_input:
try:
API_KEY = 'XXXXXXXXX' #MY API KEY
symbol = i #søg på google efter firmanavnet og "stock price". Tickeren er den der skal bruges
r = requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=' + i + '&apikey=' + API_KEY)
result = r.json()
AllData = result['Time Series (Daily)']
alldays = list(AllData.keys())
alldays.sort()
timeinterval = 10
days = alldays[len(alldays)-timeinterval:len(alldays)]
#print(days)
SymbolList = []
for i in range(timeinterval):
SymbolList.append(symbol)
#print(SymbolList)
StockPriceList = []
if (r.status_code == 200):
for i, day in enumerate(days):
result = r.json()
dataForAllDays = result['Time Series (Daily)']
dataForSingleDate = dataForAllDays[days[i]]
#print (days[i], dataForSingleDate['4. close'])
StockPriceList.append(dataForSingleDate['4. close'])
#print(StockPriceList)
combined_lists = list(zip(days, StockPriceList, SymbolList)) #create tuples to feed into dataframe from multiple lists
df1 = pd.DataFrame(combined_lists, columns = ['Date', 'Price', 'Stock Ticker'])
print(df1)
time.sleep(10)
except:
print('could not get data for: ' + i)
time.sleep(1) # wait for 1 seconds before trying to fetch the data again
continue
打印(獲取數據(C20))
您可以使用 pd.concat 然后通過使用臨時數據幀將所有內容連接到一個最終數據幀中。
您可以使用此代碼作為將兩個不同的數據幀連接成單個最終數據幀的示例。
dataset1 = pd.DataFrame([[1,2],[2,3],[3,4]],columns=['A','B'])
dataset2 = pd.DataFrame([[4,5],[5,6],[6,7]],columns=['A','B'])
full_dataset = pd.concat([dataset1,dataset2])
full_dataset
A B
0 1 2
1 2 3
2 3 4
0 4 5
1 5 6
2 6 7
參考: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html
如果您需要其他任何東西,請告訴我。 祝你有美好的一天!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.