当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas interval_range方法用法及代码示例


Pandas interval_range(~) 方法返回固定频率的 IntervalIndex

注意

如果您正在处理与时间相关的数据,请选择使用 period_range(~)

参数

1.start | numericdatetime-like | optional

范围的下限。默认情况下,start=None

2. end | numericdatetime-like | optional

范围的上限。默认情况下,end=None

3. periods | int | optional

所需的日期数量。默认情况下,periods=True

警告

在上述三个参数中,必须指定两个 - 不能少,不能多。

4. freq | stringDateOffset | optional

间隔的长度。默认情况下,如果 start 是数字,则为 freq=1 ,否则为 freq="D" (长度为一天)。

5. name | string | optional

分配给结果 IntervalIndex 的名称。默认情况下,name=None

6. closed | string | optional

是否使边界包含/排除:

说明

"left"

  • 包含左端点。

  • 右端点是独占的。

"right"

  • 左端点是独占的。

  • 右端点包含在内。

"both"

两个端点都包含在内。

"neither"

两个端点都是互斥的。

默认情况下,closed="right"

返回值

一个 IntervalIndex

例子

基本用法

数字

要使用简单的数字创建间隔范围:

pd.interval_range(start=5, end=8)



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

这里,返回的IntervalIndex包含3个间隔。请注意, (5,6] 仅表示 5 < a <=6

日期

要创建从 2020-12-25(包含)到 2020-12-28(不包含)的日期间隔序列:

pd.interval_range(start=pd.Timestamp("2020-12-25"), end=pd.Timestamp("2020-12-28"))



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

默认的step-size(频率)是一天,因此这就是我们在输出中看到freq="D"的原因。

指定期间

要创建 3 个数字间隔的序列:

pd.interval_range(start=5, periods=3)



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

要从2020-12-25(含)创建 3 个日期间隔的序列:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

指定频率

对于数字间隔,默认为 freq=1 ,这意味着间隔宽度为 1

pd.interval_range(start=5, periods=3)   # freq=1



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

将间隔宽度设置为 2:

pd.interval_range(start=5, periods=3, freq=2)



IntervalIndex([(5, 7], (7, 9], (9, 11]],
              closed='right',
              dtype='interval[int64]')

对于时间序列,默认为 freq="D" ,这意味着间隔宽度为一天:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)   # freq="D"



IntervalIndex([(2020-12-25, 2020-12-26], (2020-12-26, 2020-12-27], (2020-12-27, 2020-12-28]],
              closed='right',
              dtype='interval[datetime64[ns]]')

要将间隔宽度设置为 2 天:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, freq="2D")



IntervalIndex([(2020-12-25, 2020-12-27],
               (2020-12-27, 2020-12-29],
               (2020-12-29, 2020-12-31]],
               closed='right',
               dtype='interval[datetime64[ns]]')

指定名称

为生成的 IntervalIndex 命名:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, name="My Dates")



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               name='My Dates',
               dtype='interval[datetime64[ns]]')

请注意我们如何将 name="My Dates" 编码到 IntervalIndex 中。

指定关闭

默认情况下,下限不包括在内,上限包括在内 ( closed="right" ):

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)   # closed="right"



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

要使下限包含在内且上限不包含,请设置 closed="left"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="left")



IntervalIndex([[2020-12-25, 2020-12-26),
               [2020-12-26, 2020-12-27),
               [2020-12-27, 2020-12-28)],
               closed='left',
               dtype='interval[datetime64[ns]]')

要使两个边界都包含在内,请设置 closed="both"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="both")



IntervalIndex([[2020-12-25, 2020-12-26],
               [2020-12-26, 2020-12-27],
               [2020-12-27, 2020-12-28]],
               closed='both',
               dtype='interval[datetime64[ns]]')

要使两个边界互斥,请设置 closed="neither"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="neither")



IntervalIndex([(2020-12-25, 2020-12-26),
               (2020-12-26, 2020-12-27),
               (2020-12-27, 2020-12-28)],
               closed='neither',
               dtype='interval[datetime64[ns]]')

使用IntervalIndex初始化DataFrame

IntervalIndex 可以用作DataFrame的索引:

idx = pd.interval_range(start=5, end=7)
pd.DataFrame({"A":[3,4],"B":[5,6]}, index=idx)



        A  B
(5, 6]  3  5
(6, 7]  4  6

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas | interval_range method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。