我正在使用pandas datareader来提取给定日期范围内的股票信息。例如:
import pandas_datareader.data as web
import datetime as dt
start = dt.datetime(2018,3,26)
end = dt.datetime(2018,3,29)
web.DataReader('IBM','morningstar', start, end).reset_index()
这将返回IBM的以下数据框:
这包含我正在寻找的信息,但我想自动迭代多个股票代码(而不是手动更改股票代码)。理想情况下,我可以通过所需股票代码列表循环此代码。
答案 0 :(得分:2)
这是另一种直接创建数据框的方法:
tickers = ['IBM','AAPL']
df = pd.concat([web.DataReader(ticker,'morningstar', start, end) for ticker in tickers]).reset_index()
返回:
Symbol Date Close High Low Open Volume
0 IBM 2018-03-26 153.37 153.6570 150.28 151.210 4103904
1 IBM 2018-03-27 151.91 154.8697 151.16 153.950 3883745
2 IBM 2018-03-28 152.52 153.8600 151.89 152.070 3664826
3 IBM 2018-03-29 153.43 153.8900 151.08 153.070 3419959
4 AAPL 2018-03-26 172.77 173.1000 166.44 168.070 37541236
5 AAPL 2018-03-27 168.34 175.1500 166.92 173.680 40922579
6 AAPL 2018-03-28 166.48 170.0200 165.19 167.250 41668545
7 AAPL 2018-03-29 167.78 171.7500 166.90 167.805 38398505
答案 1 :(得分:1)
我认为这可能就是你要找的东西。
import pandas_datareader.data as web
import datetime as dt
start = dt.datetime(2018,3,26)
end = dt.datetime(2018,3,29)
tickers = ['IBM', 'FB']
data = {}
for t in tickers:
data[t] = web.DataReader(t,'morningstar', start, end).reset_index()