2014-10-08 49 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