Pandas interval_range(~)
方法返回固定频率的 IntervalIndex
。
注意
如果您正在处理与时间相关的数据,请选择使用 period_range(~)
。
参数
1.start
| numeric
或 datetime-like
| optional
范围的下限。默认情况下,start=None
。
2. end
| numeric
或 datetime-like
| optional
范围的上限。默认情况下,end=None
。
3. periods
| int
| optional
所需的日期数量。默认情况下,periods=True
。
警告
在上述三个参数中,必须指定两个 - 不能少,不能多。
4. freq
| string
或 DateOffset
| optional
间隔的长度。默认情况下,如果 start
是数字,则为 freq=1
,否则为 freq="D"
(长度为一天)。
5. name
| string
| optional
分配给结果 IntervalIndex
的名称。默认情况下,name=None
。
6. closed
| string
| optional
是否使边界包含/排除:
值 |
说明 |
---|---|
|
|
|
|
|
两个端点都包含在内。 |
|
两个端点都是互斥的。 |
默认情况下,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
相关用法
- Python scipy interpolate.CubicHermiteSpline.solve用法及代码示例
- Python scipy interpolate.CubicSpline.solve用法及代码示例
- Python scipy interpolate.PchipInterpolator.solve用法及代码示例
- Python scipy interpolate.Akima1DInterpolator.solve用法及代码示例
- Python NumPy interp方法用法及代码示例
- Python scipy integrate.trapz用法及代码示例
- Python integer转string用法及代码示例
- Python scipy integrate.cumtrapz用法及代码示例
- Python integer转roman用法及代码示例
- Python scipy integrate.simps用法及代码示例
- Python int转exponential用法及代码示例
- Python int.from_bytes用法及代码示例
- Python int构造函数用法及代码示例
- Python int.bit_length用法及代码示例
- Python int.bit_count用法及代码示例
- Python int.to_bytes用法及代码示例
- Python int()用法及代码示例
- Python BeautifulSoup insert方法用法及代码示例
- Python inspect.Parameter.replace用法及代码示例
- Python inspect.Parameter.kind用法及代码示例
- Python inspect.Signature.from_callable用法及代码示例
- Python Django index用法及代码示例
- Python inspect.isasyncgenfunction用法及代码示例
- Python inspect.isawaitable用法及代码示例
- Python BeautifulSoup insert_after方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas | interval_range method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。