如何使用向量化代码创建pandas.Intervals类型的列表
pandas批量生成Interval列表的正确实现
核心实现代码
直接使用pandas内置的pd.arrays.IntervalArray.from_arrays()向量化方法即可实现需求:
import numpy as np import pandas as pd # 输入数组 a = np.array([1, 5, 10]) b = np.array([3, 8, 12]) # 生成Interval数组,可直接赋值给DataFrame列 interval_arr = pd.arrays.IntervalArray.from_arrays(left=a, right=b, closed='right') # 如果需要输出为普通Python列表,调用tolist()即可 # interval_list = interval_arr.tolist() # 赋值给DataFrame列示例 df = pd.DataFrame() df['c'] = interval_arr
原有方案错误原因
- 方案A:
pd.Interval是单个区间对象类,仅支持单次传入单个左右边界值生成单个区间,不支持直接传入数组批量生成,且你拼写的pd.Intervals(复数)本身就不存在 - 方案B:元组类型没有内置的强制转
pd.Interval类型的规则,无法通过astype直接转换
可选参数说明
from_arrays方法的closed参数可自定义区间开闭规则,支持四种取值:
right:默认值,左开右闭区间left:左闭右开区间both:全闭区间neither:全开区间
内容的提问来源于stack exchange,提问作者Ilan12
相关产品推荐
相关产品推荐

