panda 获取数据雅虎 面板数据形式
我想开始使用Panda的get_data_yahoo方法,把Yahoo的数据加载到一个面板数据集中。
所以我现在有下面这个设置:
all_data={}
for ticker in ['GOOG','AAPL','XOM']:
all_data[ticker]=web.get_data_yahoo(ticker,'04/11/2014','04/14/2014')
输出结果如下:
{'GOOG': Open High Low Close Volume Adj Close
Date
2014-04-11 532.55 540.0 526.53 530.60 3914100 530.60
2014-04-14 538.25 544.1 529.56 532.52 2568000 532.52
[2 rows x 6 columns], 'AAPL': Open High Low Close Volume Adj Close
Date
2014-04-11 519.0 522.83 517.14 519.61 9704200 519.61
2014-04-14 521.9 522.16 517.21 521.68 7345500 521.68
[2 rows x 6 columns], 'XOM': Open High Low Close Volume Adj Close
Date
2014-04-11 96.51 97.44 96.28 96.72 13352500 96.72
2014-04-14 97.49 98.06 96.74 97.86 9610200 97.86
我想在每次抓取数据时,为每个股票代码添加一个单独的列,比如:
Date Ticker Open High Low Close Volume Adj Close
2014-04-11 GOOG xxx xxx xxx xxx xxx xxx
2014-04-14 GOOG xxx xxx xxx xxx xxx xxx
2014-04-11 AAPL xxx xxx xxx xxx xxx xxx
2014-04-14 AAPL xxx xxx xxx xxx xxx xxx
2014-04-11 XOM xxx xxx xxx xxx xxx xxx
2014-04-14 XOM xxx xxx xxx xxx xxx xxx
我该怎么做呢?
谢谢!
1 个回答
4
你可以这样做:
data=[]
for ticker in ['GOOG','AAPL','XOM']:
x = web.get_data_yahoo(ticker,'04/11/2014','04/14/2014')
x['ticker'] = ticker
data.append(x)
print pd.concat(data)
Open High Low Close Volume Adj Close ticker
Date
2014-04-11 532.55 540.00 526.53 530.60 3914100 530.60 GOOG
2014-04-14 538.25 544.10 529.56 532.52 2568000 532.52 GOOG
2014-04-11 519.00 522.83 517.14 519.61 9704200 519.61 AAPL
2014-04-14 521.90 522.16 517.21 521.68 7345500 521.68 AAPL
2014-04-11 96.51 97.44 96.28 96.72 13352500 96.72 XOM
2014-04-14 97.49 98.06 96.74 97.86 9610200 97.86 XOM