python pandas将多维数据组织到一个对象中

时间:2013-08-04 14:13:28

标签: python pandas

拥有来自证券交易所的历史数据,包含多个股票,以及一定数量的特定股票属性(开盘价,最高价,最低价,收盘价,成交量),最终我的数据中有3个维度,即time stampstock's tickerattributes。对于单个股票(2D),我创建了一个pd.DataFrame,但我应该如何(有效地和通用地)将许多股票的数据放入单个对象中? pd.DataFrame是否具有多索引的最佳解决方案?

1 个答案:

答案 0 :(得分:3)

我建议您使用Panel,例如:

>>> from pandas.io.data import DataReader
>>> from pandas import Panel, DataFrame

>>> symbols = ['AAPL', 'GLD', 'SPX', 'MCD']
>>> data = dict((symbol, DataReader(symbol, "yahoo", pause=1)) for symbol in symbols)
>>> panel = Panel(data).swapaxes('items', 'minor')
>>> closing = panel['Close'].dropna()
>>> closing.head()

             AAPL    GLD     MCD     SPX
Date                
2010-01-04   214.01  109.80  62.78   1132.99
2010-01-05   214.38  109.70  62.30   1136.52
2010-01-06   210.97  111.51  61.45   1137.14
2010-01-07   210.58  110.82  61.90   1141.69
2010-01-08   211.98  111.37  61.84   1144.98

如果你想了解更多内容,请查看我为课程制作的this示例。