Python Pandas - Check if an interval is empty

To check if an Interval is empty in Pandas, use the is_empty property. An interval is considered empty when it contains no values, which happens when the left and right boundaries are equal and the interval doesn't include both endpoints.

Understanding Empty Intervals

An interval is empty when:

  • Left and right boundaries are equal
  • The interval is open at both ends (closed='neither')
  • The interval is half-open and excludes the single point

Example: Checking Empty Intervals

Let's create different types of intervals and check if they are empty ?

import pandas as pd

# Create different intervals
interval1 = pd.Interval(0, 0, closed='right')  # Half-open: (0, 0]
interval2 = pd.Interval(0, 0, closed='left')   # Half-open: [0, 0)
interval3 = pd.Interval(0, 0, closed='both')   # Closed: [0, 0]
interval4 = pd.Interval(0, 5, closed='right')  # Non-empty: (0, 5]

print("Interval 1 (0, 0]:")
print("Is empty?", interval1.is_empty)
print("Length:", interval1.length)

print("\nInterval 2 [0, 0):")
print("Is empty?", interval2.is_empty)
print("Length:", interval2.length)

print("\nInterval 3 [0, 0]:")
print("Is empty?", interval3.is_empty)
print("Length:", interval3.length)

print("\nInterval 4 (0, 5]:")
print("Is empty?", interval4.is_empty)
print("Length:", interval4.length)
Interval 1 (0, 0]:
Is empty? True
Length: 0

Interval 2 [0, 0):
Is empty? True
Length: 0

Interval 3 [0, 0]:
Is empty? False
Length: 0

Interval 4 (0, 5]:
Is empty? False
Length: 5

Key Points

  • The is_empty property returns True for intervals that contain no values
  • An interval [a, a] (closed at both ends) is NOT empty - it contains the single point a
  • Intervals (a, a], [a, a), and (a, a) are empty when left equals right
  • Empty intervals always have a length of 0, but length 0 doesn't always mean empty

Practical Use Case

This is useful when working with time series or numerical ranges ?

import pandas as pd

# Create a list of intervals
intervals = [
    pd.Interval(1, 5, closed='right'),
    pd.Interval(3, 3, closed='left'),
    pd.Interval(10, 15, closed='both'),
    pd.Interval(7, 7, closed='neither')
]

print("Checking intervals for emptiness:")
for i, interval in enumerate(intervals):
    status = "Empty" if interval.is_empty else "Not Empty"
    print(f"Interval {i+1}: {interval} - {status}")
Checking intervals for emptiness:
Interval 1: (1, 5] - Not Empty
Interval 2: [3, 3) - Empty
Interval 3: [10, 15] - Not Empty
Interval 4: (7, 7) - Empty

Conclusion

Use the is_empty property to check if a Pandas interval contains no values. Remember that intervals with equal boundaries can be empty or non-empty depending on whether they include the endpoints.

---
Updated on: 2026-03-26T17:52:52+05:30

367 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements