pandas.interval_range#

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

返回一个固定频率的 IntervalIndex。

参数:
开始数值或类似日期时间,默认无

生成区间的左边界。

结束数值或类似日期时间,默认无

生成区间的右边界。

periodsint, 默认 None

要生成的周期数。

freqnumeric, str, Timedelta, datetime.timedelta, 或 DateOffset, 默认 None

每个区间长度。必须与开始和结束的类型一致,例如数值类型为2,或类似日期时间的’5H’。默认数值类型为1,类似日期时间的为’D’。

名称str, 默认为 None

生成的 IntervalIndex 的名称。

关闭{‘left’, ‘right’, ‘both’, ‘neither’}, 默认 ‘right’

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

返回:
IntervalIndex

具有固定频率的对象。

参见

IntervalIndex

所有在同一侧闭合的区间的索引。

备注

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

要了解更多关于类似日期时间频率字符串的信息,请参见 此链接

示例

支持数字 startend

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

此外,还支持类似日期时间格式的输入。

>>> 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 中各个区间左右端点之间的频率。对于数值型的 startend,频率也必须是数值型。

>>> 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]')

同样地,对于类似日期时间的 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]')