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
Selected Reading
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.
Advertisements
