2015-04-01 182 views
0

我有一個熊貓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]來做某種分層索引,但它不起作用。

是否因爲指數不是整數?

如何使用此數據框進行這種分層索引?

+0

使用pd.to_clipboard和第10行粘貼到你的問題。 – camdenl 2015-04-01 15:48:16

回答

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],:] 
+0

謝謝。但是,您提供的選項都不適用於此DataFrame ... – betelgeuse 2015-04-01 15:59:49

+1

您使用的是什麼版本的熊貓? – joris 2015-04-01 16:00:59

+0

我使用的版本是0.12 – betelgeuse 2015-04-01 16:03:03