代码之家  ›  专栏  ›  技术社区  ›  meow

是否可以用间隔查询IntervalIndex

  •  1
  • meow  · 技术社区  · 6 年前

    idx :

    [1,3]
    [5,8]
    [10,12]
    

    我想在同一域中使用新的间隔进行查询:

    new_interval = pd.Interval(2, 6, closed="both")
    

    idx.get_loc(new_interval)
    
    >> array([0, 1])
    

    有没有办法做到这一点(除了直接使用区间树之外)?

    1 回复  |  直到 6 年前
        1
  •  2
  •   root    6 年前

    使用 get_indexer :

    In [1]: import pandas as pd; pd.__version__
    Out[1]: '0.23.4'
    
    In [2]: idx = pd.IntervalIndex.from_tuples([(1, 3), (5, 8), (10, 12)], closed='both')
    
    In [3]: idx
    Out[3]:
    IntervalIndex([[1, 3], [5, 8], [10, 12]]
                  closed='both',
                  dtype='interval[int64]')
    
    In [4]: new_interval = pd.Interval(2, 6, closed='both')
    
    In [5]: idx.get_indexer([new_interval])
    Out[5]: array([0, 1], dtype=int64)