# pandas.interval_range

`pandas.``interval_range`(start=None, end=None, periods=None, freq=None, name=None, closed='right')

  Return a fixed frequency IntervalIndex

  Parameters:

  start : numeric or datetime-like, default None

  > Left bound for generating intervals

  end : numeric or datetime-like, default None

  > Right bound for generating intervals

  periods : integer, default None

  > Number of periods to generate

  freq : numeric, string, or DateOffset, default None

  > The length of each interval. Must be consistent with the type of start and end, e.g. 2 for numeric, or ‘5H’ for datetime-like. Default is 1 for numeric and ‘D’ for datetime-like.

  name : string, default None

  > Name of the resulting IntervalIndex

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

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

  Returns: | rng : IntervalIndex

  See also

  `IntervalIndex`
    An Index of intervals that are all closed on the same side.

  Notes

  Of the four parameters `start`, `end`, `periods`, and `freq`, exactly three must be specified. If `freq` is omitted, the resulting `IntervalIndex` will have `periods` linearly spaced elements between `start` and `end`, inclusively.

  To learn more about datetime-like frequency strings, please see this link.

  Examples

  Numeric `start` and `end` is supported.

      >>> pd.interval_range(start=0, end=5)
      IntervalIndex([(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]],
                    closed='right', dtype='interval[int64]')

  Additionally, datetime-like input is also supported.

      >>> pd.interval_range(start=pd.Timestamp('2017-01-01'),
      ...                   end=pd.Timestamp('2017-01-04'))
      IntervalIndex([(2017-01-01, 2017-01-02], (2017-01-02, 2017-01-03],
                     (2017-01-03, 2017-01-04]],
                    closed='right', dtype='interval[datetime64[ns]]')

  The `freq` parameter specifies the frequency between the left and right. endpoints of the individual intervals within the `IntervalIndex`. For numeric `start` and `end`, the frequency must also be numeric.

      >>> pd.interval_range(start=0, periods=4, freq=1.5)
      IntervalIndex([(0.0, 1.5], (1.5, 3.0], (3.0, 4.5], (4.5, 6.0]],
                    closed='right', dtype='interval[float64]')

  Similarly, for datetime-like `start` and `end`, the frequency must be convertible to a DateOffset.

      >>> pd.interval_range(start=pd.Timestamp('2017-01-01'),
      ...                   periods=3, freq='MS')
      IntervalIndex([(2017-01-01, 2017-02-01], (2017-02-01, 2017-03-01],
                     (2017-03-01, 2017-04-01]],
                    closed='right', dtype='interval[datetime64[ns]]')

  Specify `start`, `end`, and `periods`; the frequency is generated automatically (linearly spaced).

      >>> pd.interval_range(start=0, end=6, periods=4)
      IntervalIndex([(0.0, 1.5], (1.5, 3.0], (3.0, 4.5], (4.5, 6.0]],
                closed='right',
                dtype='interval[float64]')

  The `closed` parameter specifies which endpoints of the individual intervals within the `IntervalIndex` are closed.

      >>> pd.interval_range(end=5, periods=4, closed='both')
      IntervalIndex([[1, 2], [2, 3], [3, 4], [4, 5]],
                    closed='both', dtype='interval[int64]')

Scroll To Top