Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
