我从Alpha Vantage API中提取每日股票数据,该API返回JSON。因为我正在为多个公司提取数据,所以我创建了一个for循环,这样我就不必为每个公司重复这个过程(在下面的示例中,这两个公司是“zm”和“sq”)
for循环应该创建一个数据框,将每个公司的数据追加到底部。我面临的问题是,当我创建一个列来显示公司符号时,它会在每次遍历循环时覆盖上一个公司的符号如何在不覆盖上一个公司符号的情况下添加到公司符号列?
ticks = ['zm','sq']
df = pd.DataFrame()
for i in ticks:
response = requests.request("GET", url="https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol="+i+"&outputsize=full&apikey=DEMOKEY")
jsd = json.loads(response.text)
df = df.append(pd.DataFrame(jsd['Time Series (Daily)']).T)
df['symbol'] = i
df
这让我很接近,但在我创建的名为“symbol”的列中,每一行都写着“sq”,而不是“zm”行写着“zm”。“zm”行在循环中第二次被“sq”覆盖
Date 1. open 2. high 3. low 4. close 5. volume symbol
2020-07-29 255.5500 259.9300 251.1500 252.3900 3260312 sq
2020-07-28 252.7000 258.9100 251.3200 252.1800 3366216 sq
2020-07-27 249.2800 252.9700 246.2200 252.3300 3328563 sq
2020-07-24 246.2000 250.2100 237.2000 246.5600 4303198 sq
2020-07-23 260.8400 264.9000 249.2100 251.5000 4589358 sq
... ... ... ... ... ... ...
2015-11-25 12.1200 12.4000 11.8500 11.9000 3583421 sq
2015-11-24 12.0000 12.2300 11.5200 12.0200 4714682 sq
2015-11-23 13.0000 13.1500 12.1000 12.1200 5172246 sq
2015-11-20 13.9200 14.0500 12.5000 12.8500 16550328 sq
2015-11-19 11.2000 14.7800 9.0000 13.0700 47466050 sq
有没有办法做到这一点(或者更好地实现我的目标)
我认为这应该行得通
相关问题 更多 >
编程相关推荐