是否可以查询 Pandas IntervalIndex with Intervals
Is it possible to query Pandas IntervalIndex with Intervals
我只是想知道是否有一种方法可以查询具有 Interval(或范围)的 Pandas IntervalIndex,最终返回 IntervalIndex 中与查询的 Interval 重叠的所有 Interval。
例如给定一个 IntervalIndex idx
:
[1,3]
[5,8]
[10,12]
我想在同一域中使用新的间隔进行查询:
new_interval = pd.Interval(2, 6, closed="both")
所以像这样:
idx.get_loc(new_interval)
>> array([0, 1])
有没有办法做到这一点(除了直接使用区间树)?
使用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)
我只是想知道是否有一种方法可以查询具有 Interval(或范围)的 Pandas IntervalIndex,最终返回 IntervalIndex 中与查询的 Interval 重叠的所有 Interval。
例如给定一个 IntervalIndex idx
:
[1,3]
[5,8]
[10,12]
我想在同一域中使用新的间隔进行查询:
new_interval = pd.Interval(2, 6, closed="both")
所以像这样:
idx.get_loc(new_interval)
>> array([0, 1])
有没有办法做到这一点(除了直接使用区间树)?
使用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)