Python Pandas - Check if the Intervals in the IntervalArray is empty

To check if the intervals in the IntervalArray are empty, use the is_empty property in Pandas. An interval is considered empty when it has zero length, which occurs when the left and right boundaries are equal in an open interval.

What are Empty Intervals?

An empty interval occurs when:

  • The left and right boundaries are equal
  • The interval is open (closed='neither')
  • This results in zero length

Creating IntervalArray with Empty and Non-Empty Intervals

Let's create an IntervalArray containing both empty and non-empty intervals :

import pandas as pd

# Create intervals - one empty, one non-empty
interval1 = pd.Interval(0, 0, closed='neither')  # Empty interval
interval2 = pd.Interval(20, 50, closed='neither')  # Non-empty interval

print("Interval1:", interval1)
print("Interval2:", interval2)
print("Interval1 length:", interval1.length)
print("Interval2 length:", interval2.length)
Interval1: (0, 0)
Interval2: (20, 50)
Interval1 length: 0
Interval2 length: 30

Checking for Empty Intervals

Create an IntervalArray and use the is_empty property to identify empty intervals :

import pandas as pd

# Create intervals
interval1 = pd.Interval(0, 0, closed='neither')  # Empty
interval2 = pd.Interval(20, 50, closed='neither')  # Non-empty
interval3 = pd.Interval(10, 10, closed='neither')  # Empty

# Construct IntervalArray
array = pd.arrays.IntervalArray([interval1, interval2, interval3])

print("IntervalArray:")
print(array)
print("\nIs empty check:")
print(array.is_empty)
IntervalArray:
<IntervalArray>
[(0, 0), (20, 50), (10, 10)]
Length: 3, dtype: interval[int64, neither]

Is empty check:
[ True False  True]

Filtering Empty Intervals

You can use the is_empty property to filter or count empty intervals :

import pandas as pd

# Create IntervalArray
intervals = [
    pd.Interval(0, 0, closed='neither'),
    pd.Interval(5, 15, closed='neither'),
    pd.Interval(20, 20, closed='neither')
]
array = pd.arrays.IntervalArray(intervals)

# Count empty intervals
empty_count = array.is_empty.sum()
print(f"Number of empty intervals: {empty_count}")

# Get only non-empty intervals
non_empty_array = array[~array.is_empty]
print("Non-empty intervals:")
print(non_empty_array)
Number of empty intervals: 2
Non-empty intervals:
<IntervalArray>
[(5, 15)]
Length: 1, dtype: interval[int64, neither]

Conclusion

The is_empty property returns a boolean array indicating which intervals have zero length. This is useful for filtering data or identifying degenerate intervals in your analysis.

Updated on: 2026-03-26T15:55:54+05:30

201 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements