如何使用 pd.IntervalIndex.is_overlapping 在 DataFrame 中查找重叠的间隔?

How to use pd.IntervalIndex.is_overlapping to find overlapping Intervals in a DataFrame?

使用新的 Pandas IntervalIndex.is_overlapping 您可以检查 IntervalIndex 是否重叠。该函数仅 Returns 整个 DataFrame 的布尔值,但不 Group/identify overlapping/not-overlapping 间隔。如何使用高效的 Pandas 间隔功能实现此目的?

import pandas as pd

df=pd.IntervalIndex.from_tuples([(0, 1),(1, 2),(3,5),(2,7),(5,12),(1,9)],closed='both')
print(df.is_overlapping())

我们可以使用overlaps

[df.overlaps(x)for x in df]
Out[344]: 
[array([ True,  True, False, False, False,  True]),
 array([ True,  True, False,  True, False,  True]),
 array([False, False,  True,  True,  True,  True]),
 array([False,  True,  True,  True,  True,  True]),
 array([False, False,  True,  True,  True,  True]),
 array([ True,  True,  True,  True,  True,  True])]