实现一个间隔(有界的slice-like间隔)的不可变对象。
参数:
left:orderable scalar间隔的左边界。
right:orderable scalar间隔的右界。
closed:{‘right’, ‘left’, ‘both’, ‘neither’}, 默认为 ‘right’是否关闭left-side,right-side或两者都不关闭间隔。有关更多详细说明,请参见注释。
注意:
参数left和right必须来自同一类型,您必须能够比较它们并且它们必须满足left <= right。
封闭区间(在数学中由方括号表示)包含其端点,即封闭区间[0, 5]有条件的特点0 <= x <= 5。这是什么closed='both'代表。开放时间间隔(用括号表示的数学形式)不包含其端点,即开放时间间隔(0, 5)有条件的特点0 < x < 5。这是什么closed='neither'代表。间隔也可以是半开或half-closed,即[0, 5)被描述为0 <= x < 5(closed='left')和(0, 5]被描述为0 < x <= 5(closed='right')。
例子:
可以构建不同类型的间隔,例如数字:
>>> iv = pd.Interval(left=0, right=5)
>>> iv
Interval(0, 5, closed='right')
您可以检查元素是否属于它
>>> 2.5 in iv
True
您可以测试边界(closed='right',所以0 < x <= 5):
>>> 0 in iv
False
>>> 5 in iv
True
>>> 0.0001 in iv
True
计算其长度
>>> iv.length
5
您可以使用+和*在一个时间间隔上,并且该操作将应用于其每个范围,因此结果取决于绑定元素的类型
>>> shifted_iv = iv + 3
>>> shifted_iv
Interval(3, 8, closed='right')
>>> extended_iv = iv * 10.0
>>> extended_iv
Interval(0.0, 50.0, closed='right')
要创建时间间隔,您可以使用时间戳记作为界限
>>> year_2017 = pd.Interval(pd.Timestamp('2017-01-01 00:00:00'),
... pd.Timestamp('2018-01-01 00:00:00'),
... closed='left')
>>> pd.Timestamp('2017-01-01 00:00') in year_2017
True
>>> year_2017.length
Timedelta('365 days 00:00:00')
您还可以创建字符串间隔
>>> volume_1 = pd.Interval('Ant', 'Dog', closed='both')
>>> 'Bee' in volume_1
True
属性:
是否关闭left-side,right-side或两者都不关闭间隔。
检查间隔是否在左侧关闭。
检查间隔是否在右侧关闭。
指示时间间隔是否为空,表示该时间间隔不包含任何点。
间隔的左边界。
返回间隔的长度。
返回间隔的中点。
检查间隔是否在左侧打开。
检查间隔是否在右侧打开。
间隔的右界。
方法:
检查两个Interval对象是否重叠。