Python Pandas - Create an IntervalIndex

An IntervalIndex in Pandas represents a set of intervals, where each interval has a left and right boundary. It's commonly used for time series data, binning operations, and range-based indexing.

Basic IntervalIndex Creation

The most straightforward way to create an IntervalIndex is using from_arrays() method ?

import pandas as pd

# Create IntervalIndex from left and right arrays
interval = pd.IntervalIndex.from_arrays([5, 10, 15], [10, 15, 20])

print("IntervalIndex...")
print(interval)
IntervalIndex...
IntervalIndex([(5, 10], (10, 15], (15, 20]], dtype='interval[int64, right]')

IntervalIndex Properties

You can access various properties of the IntervalIndex ?

import pandas as pd

interval = pd.IntervalIndex.from_arrays([5, 10, 15], [10, 15, 20])

print("Length of each interval:")
print(interval.length)

print("\nLeft boundaries:")
print(interval.left)

print("\nRight boundaries:")
print(interval.right)
Length of each interval:
Int64Index([5, 5, 5], dtype='int64')

Left boundaries:
Int64Index([5, 10, 15], dtype='int64')

Right boundaries:
Int64Index([10, 15, 20], dtype='int64')

Alternative Creation Methods

You can also create IntervalIndex using from_breaks() for consecutive intervals ?

import pandas as pd

# Create from break points
breaks = [0, 5, 10, 15, 20]
interval_breaks = pd.IntervalIndex.from_breaks(breaks)

print("From breaks:")
print(interval_breaks)

# Create from tuples
tuples = [(1, 3), (4, 6), (7, 9)]
interval_tuples = pd.IntervalIndex.from_tuples(tuples)

print("\nFrom tuples:")
print(interval_tuples)
From breaks:
IntervalIndex([(0, 5], (5, 10], (10, 15], (15, 20]], dtype='interval[int64, right]')

From tuples:
IntervalIndex([(1, 3], (4, 6], (7, 9]], dtype='interval[int64, right]')

Interval Inclusion Types

Control which boundaries are included using the closed parameter ?

import pandas as pd

# Right-closed (default)
right_closed = pd.IntervalIndex.from_arrays([1, 5], [3, 7], closed='right')
print("Right-closed:", right_closed)

# Left-closed
left_closed = pd.IntervalIndex.from_arrays([1, 5], [3, 7], closed='left')
print("Left-closed:", left_closed)

# Both sides closed
both_closed = pd.IntervalIndex.from_arrays([1, 5], [3, 7], closed='both')
print("Both closed:", both_closed)
Right-closed: IntervalIndex([(1, 3], (5, 7]], dtype='interval[int64, right]')
Left-closed: IntervalIndex([[1, 3), [5, 7)], dtype='interval[int64, left]')
Both closed: IntervalIndex([[1, 3], [5, 7]], dtype='interval[int64, both]')

Conclusion

IntervalIndex provides a powerful way to work with interval data in Pandas. Use from_arrays() for custom intervals, from_breaks() for consecutive ranges, and the closed parameter to control boundary inclusion.

Updated on: 2026-03-26T16:57:20+05:30

622 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements