如何正确使用pyarrow.compute.is_in函数实现PyArrow数组元素匹配
pyarrow 5.0.0 版本 is_in 函数正确调用方案
实现isin功能的完整可运行代码
# 导入依赖 import pyarrow as pa import pyarrow.compute as cp from pyarrow import SetLookupOptions # 构造测试数组 array1 = pa.array([1,2,3,4]) array2 = pa.array([1,4]) # 正确调用方式 result = cp.is_in(array1, options=SetLookupOptions(value_set=array2)) # 输出验证 print(result)
运行后输出结果符合预期:
[ true, false, false, true ]
报错原因说明
你遇到的两类报错都是pyarrow 5.0.0的版本参数规则和新版文档不匹配导致:
- 执行
cp.is_in(array1,array2)报错:该版本is_in仅接受1个位置参数(待检查的数组),过滤集合不能作为第二个位置参数直接传入 - 执行
cp.is_in(values = array1,value_set = array2)报错:5.0.0版本不支持直接传入value_set关键字参数,该参数是pyarrow 6.0及以上版本才新增的直接传参方式,旧版本必须通过SetLookupOptions封装后传入options参数
高版本适配(pyarrow 6.0+)
如果后续升级pyarrow到6.0及以上版本,可以直接使用更简洁的调用方式:
result = cp.is_in(array1, value_set=array2)
内容的提问来源于stack exchange,提问作者Enzo Hernandez
相关产品推荐
相关产品推荐

