pandas.interval_range#

pandas.interval_range(start=None, end=None, periods=None, freq=None, name=None, closed='right')[源代码]#

返回固定频率的 IntervalIndex。

Parameters:
startnumeric 或 datetime-like, default None

生成区间的左边界。

endnumeric 或 datetime-like, default None

生成区间的右边界。

periodsint,默认 None

要生成的周期数。

freqnumeric, str, Timedelta, datetime.timedelta, 或 DateOffset, default None

每个区间的长度。必须与 start 和 end 的类型一致,例如,numeric 为 2,datetime-like 为 ‘5H’。默认值为 numeric 为 1,datetime-like 为 ‘D’。

namestr,默认 None

生成的 IntervalIndex 的名称。

closed{‘left’, ‘right’, ‘both’, ‘neither’},默认为 ‘right’

区间在左侧、右侧、两侧或两侧是否闭合。

Returns:
IntervalIndex

参见

IntervalIndex

一个 IntervalIndex,其中的所有区间都在同一侧闭合。

Notes

startendperiodsfreq 四个参数中,必须指定三个。如果省略 freq,则生成的 IntervalIndex 将在 startend 之间(包含)具有呈线性间隔的 periods 个元素。

有关日期时间类频率字符串的更多信息,请参阅 this link

Examples

支持 numeric 的 startend

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

此外,还支持 datetime-like 输入。

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

freq 参数指定 IntervalIndex 中各个区间左右端点之间的频率。对于 numeric 的 startend,频率也必须是 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]],
              dtype='interval[float64, right]')

同样,对于 datetime-like 的 startend,频率必须可转换为 DateOffset。

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

指定 startendperiods;频率会自动生成(线性间隔)。

>>> 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]],
          dtype='interval[float64, right]')

closed 参数指定 IntervalIndex 中各个区间端点的闭合情况。

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