是否可以使用 Intervals 查询 Pandas IntervalIndex

我只是想知道是否有一种方法可以查询具有间隔(或范围)的 Pandas IntervalIndex,最终返回 IntervalIndex 中与查询的间隔重叠的所有间隔。


例如给定一个 IntervalIndex idx:


[1,3]

[5,8]

[10,12]

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


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

所以像这样:


idx.get_loc(new_interval)


>> array([0, 1])

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


交互式爱情
浏览 173回答 1
1回答

慕斯709654

使用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]: idxOut[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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python