Python Pandas - Check whether two Interval objects overlap

To check whether two Interval objects overlap in Pandas, use the overlaps() method. Two intervals overlap if they share a common point, including closed endpoints. Intervals that only have an open endpoint in common do not overlap.

Syntax

interval.overlaps(other)

Parameters:

  • other − Another Interval object to check overlap with

Returns: Boolean value indicating whether the intervals overlap

Basic Example

Let's create two overlapping intervals and check if they overlap ?

import pandas as pd

# Create two overlapping intervals
interval1 = pd.Interval(10, 30)
interval2 = pd.Interval(25, 35)

print("Interval1:", interval1)
print("Interval2:", interval2)
print("Do they overlap?", interval1.overlaps(interval2))
Interval1: (10, 30]
Interval2: (25, 35]
Do they overlap? True

Non-overlapping Intervals

Here's an example with intervals that don't overlap ?

import pandas as pd

# Create non-overlapping intervals
interval1 = pd.Interval(10, 20)
interval2 = pd.Interval(25, 35)

print("Interval1:", interval1)
print("Interval2:", interval2)
print("Do they overlap?", interval1.overlaps(interval2))
Interval1: (10, 20]
Interval2: (25, 35]
Do they overlap? False

Edge Cases with Endpoints

When intervals share only an endpoint, the overlap depends on whether the endpoint is open or closed ?

import pandas as pd

# Intervals sharing a closed endpoint
interval1 = pd.Interval(10, 20, closed='both')
interval2 = pd.Interval(20, 30, closed='both')

print("Closed intervals:", interval1, "and", interval2)
print("Overlap?", interval1.overlaps(interval2))

# Intervals sharing an open endpoint
interval3 = pd.Interval(10, 20, closed='left')
interval4 = pd.Interval(20, 30, closed='right')

print("\nOpen endpoint intervals:", interval3, "and", interval4)
print("Overlap?", interval3.overlaps(interval4))
Closed intervals: [10, 20] and [20, 30]
Overlap? True

Open endpoint intervals: [10, 20) and (20, 30]
Overlap? False

Complete Example with Analysis

Let's combine interval creation, properties, and overlap checking ?

import pandas as pd

# Create intervals
interval1 = pd.Interval(10, 30)
interval2 = pd.Interval(25, 35)
interval3 = pd.Interval(35, 45)

print("Interval Analysis:")
print("=================")
print("Interval1:", interval1, "| Length:", interval1.length)
print("Interval2:", interval2, "| Length:", interval2.length)
print("Interval3:", interval3, "| Length:", interval3.length)

print("\nOverlap Results:")
print("================")
print("Interval1 overlaps Interval2:", interval1.overlaps(interval2))
print("Interval2 overlaps Interval3:", interval2.overlaps(interval3))
print("Interval1 overlaps Interval3:", interval1.overlaps(interval3))
Interval Analysis:
=================
Interval1: (10, 30] | Length: 20
Interval2: (25, 35] | Length: 10
Interval3: (35, 45] | Length: 10

Overlap Results:
================
Interval1 overlaps Interval2: True
Interval2 overlaps Interval3: True
Interval1 overlaps Interval3: False

Conclusion

Use the overlaps() method to check if two Interval objects share any common points. Remember that intervals with shared closed endpoints overlap, but those with only open endpoints in common do not.

Updated on: 2026-03-26T18:05:46+05:30

536 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements