拥有来自证券交易所的历史数据,包括一些股票,以及一些给定股票的属性(开盘价、最高价、最低价、收盘价、成交量),我最终在我的数据中有 3 个维度,time stamp
即stock's ticker
和attributes
. 对于单个股票(2D),我会创建一个pd.DataFrame
,但是我应该如何(有效且通用地)将许多股票的此类数据放入单个对象中?pd.DataFrame
多索引是最好的解决方案吗?
问问题
2003 次
1 回答
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
如果您想了解更多信息,请查看我为课程制作的这个示例。
于 2013-08-04T14:31:29.237 回答