📅  最后修改于: 2023-12-03 15:04:07.082000             🧑  作者: Mango
在数据分析中常常需要检查数值区间是否在左侧或右侧打开。在Python Pandas库中,我们可以使用pd.Interval
和pd.IntervalIndex
来方便地表示和操作数值区间。
使用pd.Interval
可以创建一个数值区间。创建时需要指定左右界和是否包含左右界,示例代码如下:
import pandas as pd
# 创建一个左侧闭合的区间
interval_1 = pd.Interval(left=0, right=10, closed="left")
print(interval_1)
# [0, 10)
# 创建一个右侧闭合的区间
interval_2 = pd.Interval(left=0, right=10, closed="right")
print(interval_2)
# (0, 10]
# 创建一个左右都闭合的区间
interval_3 = pd.Interval(0, 10, closed="both")
print(interval_3)
# [0, 10]
# 创建一个左右都开放的区间
interval_4 = pd.Interval(0, 10, closed="neither")
print(interval_4)
# (0, 10)
除了单个数值区间,我们还可以使用pd.IntervalIndex
来创建一个数值区间索引。创建数值区间索引时需要指定数值区间的列表,示例代码如下:
# 创建数值区间索引
interval_index = pd.IntervalIndex.from_breaks([0, 5, 10, 15])
print(interval_index)
# IntervalIndex([(0, 5], (5, 10], (10, 15]],
# closed='right',
# dtype='interval[int64]')
使用pd.Interval
的left
、right
和closed
属性可以分别获取左右界和是否包含左右界。示例代码如下:
# 获取左侧边界
print(interval_1.left)
# 0
# 获取右侧边界
print(interval_1.right)
# 10
# 判断区间是否左侧开放
print(interval_1.left_open)
# True
# 判断区间是否右侧开放
print(interval_1.right_open)
# False
使用pd.IntervalIndex
的left
、right
和closed
属性可以分别获取每个数值区间的左右界和是否包含左右界。示例代码如下:
# 获取每个区间的左侧边界
print(interval_index.left)
# Int64Index([0, 5, 10], dtype='int64')
# 获取每个区间的右侧边界
print(interval_index.right)
# Int64Index([5, 10, 15], dtype='int64')
# 判断每个区间是否左侧开放
print(interval_index.left_open)
# array([False, False, False])
# 判断每个区间是否右侧开放
print(interval_index.right_open)
# array([True, True, True])
可以看到,pd.IntervalIndex
表示的数值区间默认是右侧开放的,需要通过closed
参数来指定是否左侧或右侧闭合。