使用Pandas进行分层索引

时间:2015-04-01 15:30:13

标签: python pandas

我有一个有三个索引级别和两列的pandas DataFrame。你可以在这里看到它的一部分:

                        av_intensity  std_dev
key1 key2  time                        
0     0    32000          -0.005203  0.006278
           32200           0.005330  0.005221
           32400           0.002679  0.005006
           32600          -0.000723  0.006145
           32800          -0.000317  0.010467
           33000          -0.006543  0.007808
           33200          -0.004180  0.005070
           33400          -0.006275  0.009662
           33600          -0.014763  0.006938
           33800          -0.029516  0.004710

指数是数字,例如(0.0, 0, 32000.0)是一组索引。

我正在尝试使用df.ix[ 0.0, :, 32000.0]df.ix[ :, 0, 32000]进行某种分层索引,但它不起作用。

是因为索引不是整数吗?

如何使用此数据框进行此类层次索引?

1 个答案:

答案 0 :(得分:0)

有关完整说明,请参阅文档中的高级层次结构索引部分:http://pandas.pydata.org/pandas-docs/dev/advanced.html#advanced-indexing-with-hierarchical-index

但基本上,你不能在多索引键中使用像这样的切片(:)。您可以做的是创建:作为slice(None)

dataGroupd.loc[(0.0, slice(None), 32000.0),:]

或使用IndexSlice便利对象,让您编写简单的:

idx = pd.IndexSlice
dataGroupd.loc[idx[0.0, :, 32000.0],:]