Table Of Contents

Search

Enter search terms or a module, class or function name.

pandas.IntervalIndex.from_arrays

classmethod IntervalIndex.from_arrays(left, right, closed='right', name=None, copy=False, dtype=None)[source]

Construct from two arrays defining the left and right bounds.

Parameters:

left : array-like (1-dimensional)

Left bounds for each interval.

right : array-like (1-dimensional)

Right bounds for each interval.

closed : {‘left’, ‘right’, ‘both’, ‘neither’}, default ‘right’

Whether the intervals are closed on the left-side, right-side, both or neither.

name : object, optional

Name to be stored in the index.

copy : boolean, default False

Copy the data.

dtype : dtype, optional

If None, dtype will be inferred.

New in version 0.23.0.

Returns:
index : IntervalIndex
Raises:

ValueError

When a value is missing in only one of left or right. When a value in left is greater than the corresponding value in right.

See also

interval_range
Function to create a fixed frequency IntervalIndex.
IntervalIndex.from_breaks
Construct an IntervalIndex from an array of splits.
IntervalIndex.from_tuples
Construct an IntervalIndex from a list/array of tuples.

Notes

Each element of left must be less than or equal to the right element at the same position. If an element is missing, it must be missing in both left and right. A TypeError is raised when using an unsupported type for left or right. At the moment, ‘category’, ‘object’, and ‘string’ subtypes are not supported.

Examples

>>> pd.IntervalIndex.from_arrays([0, 1, 2], [1, 2, 3])
IntervalIndex([(0, 1], (1, 2], (2, 3]]
              closed='right',
              dtype='interval[int64]')

If you want to segment different groups of people based on ages, you can apply the method as follows:

>>> ages = pd.IntervalIndex.from_arrays([0, 2, 13],
...                                     [2, 13, 19], closed='left')
>>> ages
IntervalIndex([[0, 2), [2, 13), [13, 19)]
              closed='left',
              dtype='interval[int64]')
>>> s = pd.Series(['baby', 'kid', 'teen'], ages)
>>> s
[0, 2)      baby
[2, 13)      kid
[13, 19)    teen
dtype: object

Values may be missing, but they must be missing in both arrays.

>>> pd.IntervalIndex.from_arrays([0, np.nan, 13],
...                              [2, np.nan, 19])
IntervalIndex([(0.0, 2.0], nan, (13.0, 19.0]]
              closed='right',
              dtype='interval[float64]')
Scroll To Top