2014-10-08 44 views
0

工作,我有以下數據框指數切片與Float64Index不是大熊貓

   p12Diff 
Pump Time   
3 -2.90 -0.000919 
    -2.89 -0.000795 
    -2.88 -0.000814 
    -2.87 -0.000700 
    -2.86 -0.000847 
    -2.85 -0.000769 
    -2.84 -0.000681 
    -2.83 -0.000888 
    -2.82 -0.000815 
    -2.81 -0.000764 
    -2.80 -0.000879 
    -2.70 -0.000757 
    -2.60 -0.000758 
    -2.50 -0.000707 

奇怪的是,當我idx=IndexSlice切片一定範圍內,我得到一個KeyError,而對其他人來說只是工作。例如,df.loc[idx[:,-2.90:-2.52],:]削減-2.60,而df.loc[idx[:,-2.90:-2.62],:]增加KeyError: -2.62

可能這是一個錯誤?

+0

什麼版本的熊貓? – Jeff 2014-10-08 16:21:33

回答

1

這固定爲0.15.0(RC1現在出來),請看這裏:http://pandas.pydata.org/。 0.14.1與這種類型的索引有點兒錯誤。

In [13]: df = DataFrame({'value' : np.arange(11)},index=pd.MultiIndex.from_product([[1],np.linspace(-2.9,-2.3,11)])) 

In [14]: df 
Out[14]: 
     value 
1 -2.90  0 
    -2.84  1 
    -2.78  2 
    -2.72  3 
    -2.66  4 
    -2.60  5 
    -2.54  6 
    -2.48  7 
    -2.42  8 
    -2.36  9 
    -2.30  10 

In [15]: idx = pd.IndexSlice 

In [16]: df.loc[idx[:,-2.9:-2.42],] 
Out[16]: 
     value 
1 -2.90  0 
    -2.84  1 
    -2.78  2 
    -2.72  3 
    -2.66  4 
    -2.60  5 
    -2.54  6 
    -2.48  7 
    -2.42  8 

In [17]: df.loc[idx[:,-2.9:-2.52],] 
Out[17]: 
     value 
1 -2.90  0 
    -2.84  1 
    -2.78  2 
    -2.72  3 
    -2.66  4 
    -2.60  5 
    -2.54  6 

In [18]: df.loc[idx[:,-2.84:-2.52],] 
Out[18]: 
     value 
1 -2.84  1 
    -2.78  2 
    -2.72  3 
    -2.66  4 
    -2.60  5 
    -2.54  6 

In [19]: df.loc[idx[:,-2.85:-2.52],] 
Out[19]: 
     value 
1 -2.84  1 
    -2.78  2 
    -2.72  3 
    -2.66  4 
    -2.60  5 
    -2.54  6 
+0

太棒了!我現在就給它一個鏡頭。謝了哥們。 – gmask 2014-10-09 13:20:46