使用Float64Index的索引切片在pandas中不起作用

2024-09-29 23:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

             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。在

这可能是个虫子吗?在


Tags: 数据dftime切片loc虫子keyerroridx
1条回答
网友
1楼 · 发布于 2024-09-29 23:29:07

这个问题在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

相关问题 更多 >

    热门问题