我有一个带有此索引的数据框:
index = pd.MultiIndex.from_product([['stock1','stock2'...],['price','volume'...]])
这是一个有用的结构,可以做
df['stock1']
,但如何选择所有价格数据?我无法理解文档。
我尝试了以下但没有运气:
df[:,'price']
df[:]['price']
df.loc(axis=1)[:,'close']
df['price]
如果无论出于何种原因,这种索引样式都被普遍认为是一个坏主意,那么什么是更好的选择?我应该将股票的多指数指数作为时间序列的标签而不是列级别的标签吗?
非常感谢
编辑 - 我对列使用多索引,而不是索引(措辞对我来说更好)。文档中的示例侧重于多级索引而不是列结构。
请您参考如下方法:
还使用约翰的数据样本:
使用 xs()
是另一种切片 MultiIndex
的方法:
df
0
stock1 price 1
volume 2
stock2 price 3
volume 4
stock3 price 5
volume 6
df.xs('price', level=1, drop_level=False)
0
stock1 price 1
stock2 price 3
stock3 price 5
或者,如果您有
MultiIndex
代替列:
df
stock1 stock2 stock3
price volume price volume price volume
0 1 2 3 4 5 6
df.xs('price', axis=1, level=1, drop_level=False)
stock1 stock2 stock3
price price price
0 1 3 5