python支持将多维数据组织到对象中

python支持将多维数据组织到对象中,python,pandas,Python,Pandas,有了来自证券交易所的历史数据,有许多股票,以及一些给定的股票属性(开盘、高盘、低盘、收盘、成交量),我的数据中实际上有三个维度,即时间戳,股票行情和属性。对于单个股票(2D),我会创建一个pd.DataFrame,但是我应该如何(高效且通用地)将多个股票的此类数据放入单个对象中呢?带有多索引的pd.DataFrame是否是最好的解决方案?我建议您使用,例如: >>> from pandas.io.data import DataReader >>> from

有了来自证券交易所的历史数据,有许多股票,以及一些给定的股票属性(开盘、高盘、低盘、收盘、成交量),我的数据中实际上有三个维度,即
时间戳
股票行情
属性
。对于单个股票(2D),我会创建一个
pd.DataFrame
,但是我应该如何(高效且通用地)将多个股票的此类数据放入单个对象中呢?带有多索引的pd.DataFrame是否是最好的解决方案?

我建议您使用,例如:

>>> 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

如果您想了解更多信息,请查看我为一门课程制作的示例。

我使用面板进行类似类型的分析,您可以将两级from面板转换为带有to_面板的面板(尽管通常更易于直接构建)