Python Pandas - Return an Index with entries denoting the length of each Interval in the IntervalArray

To return an Index with entries denoting the length of each Interval in the IntervalArray, use the array.length property in Pandas.

Understanding IntervalArray

An IntervalArray is a Pandas data structure that holds an array of intervals. Each interval has a start point, end point, and closure type (whether endpoints are included).

Creating Individual Intervals

First, let's create individual Interval objects with closed intervals ?

import pandas as pd

# Create two Interval objects
# Closed intervals set using the "closed" parameter with value "both"
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(65, 95, closed='both')

print("Interval1...\n", interval1)
print("Interval2...\n", interval2)

# Display individual interval lengths
print("\nInterval1 length...\n", interval1.length)
print("Interval2 length...\n", interval2.length)
Interval1...
 [50, 75]
Interval2...
 [65, 95]

Interval1 length...
 25

Interval2 length...
 30

Creating IntervalArray and Getting Lengths

Now let's construct an IntervalArray and get the length of all intervals at once ?

import pandas as pd

# Create intervals
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(65, 95, closed='both')

# Construct a new IntervalArray from Interval objects
array = pd.arrays.IntervalArray([interval1, interval2])

# Display the IntervalArray
print("Our IntervalArray...\n", array)

# Getting the length of IntervalArray
# Returns an Index with entries denoting the length of each Interval
print("\nOur IntervalArray length...\n", array.length)
Our IntervalArray...
 <IntervalArray>
[[50, 75], [65, 95]]
Length: 2, dtype: interval[int64, both]

Our IntervalArray length...
 Int64Index([25, 30], dtype='int64')

Working with Different Interval Types

You can also create IntervalArrays with different closure types ?

import pandas as pd

# Create intervals with different closure types
interval1 = pd.Interval(10, 20, closed='left')   # [10, 20)
interval2 = pd.Interval(25, 35, closed='right')  # (25, 35]
interval3 = pd.Interval(40, 50, closed='both')   # [40, 50]

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

print("IntervalArray with mixed closure types:")
print(array)
print("\nLengths of all intervals:")
print(array.length)
IntervalArray with mixed closure types:
<IntervalArray>
[[10, 20), (25, 35], [40, 50]]
Length: 3, dtype: interval[int64]

Lengths of all intervals:
Int64Index([10, 10, 10], dtype='int64')

Key Points

  • The length property calculates the difference between right and left endpoints
  • Length calculation is independent of the closure type (open/closed endpoints)
  • Returns an Int64Index containing the length of each interval
  • Works with both individual intervals and IntervalArrays

Conclusion

The array.length property provides a convenient way to get the length of all intervals in an IntervalArray at once. It returns an Int64Index with the computed lengths, making it easy to analyze interval sizes in your data.

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

181 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements