pyarrow.compute.min_max#

pyarrow.compute.min_max(array, /, *, skip_nulls=True, min_count=1, options=None, memory_pool=None)#

计算数值数组的最小值和最大值。

默认情况下会忽略空值(Null)。这可以通过 ScalarAggregateOptions 进行更改。

参数:
array类数组对象 (Array-like)

计算函数的参数。

skip_nullsbool, 默认 True

是否跳过(忽略)输入中的空值。如果为 False,则输入中的任何空值都会导致输出为空。

min_countint,默认值为 1

输入中所需的最小非空值数量。如果非空值的数量少于 min_count,则输出为空。

optionspyarrow.compute.ScalarAggregateOptions,可选

传递选项的替代方式。

memory_poolpyarrow.MemoryPool, 可选

如果不传递,将从默认内存池分配内存。

示例

>>> import pyarrow as pa
>>> import pyarrow.compute as pc
>>> arr1 = pa.array([1, 1, 2, 2, 3, 2, 2, 2])
>>> pc.min_max(arr1)
<pyarrow.StructScalar: [('min', 1), ('max', 3)]>

使用 skip_nulls 来处理空值。

>>> arr2 = pa.array([1.0, None, 2.0, 3.0])
>>> pc.min_max(arr2)
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr2, skip_nulls=False)
<pyarrow.StructScalar: [('min', None), ('max', None)]>

使用 ScalarAggregateOptions 来控制非空值的最小数量。

>>> arr3 = pa.array([1.0, None, float("nan"), 3.0])
>>> pc.min_max(arr3)
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=3))
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=4))
<pyarrow.StructScalar: [('min', None), ('max', None)]>

此函数也适用于字符串值。

>>> arr4 = pa.array(["z", None, "y", "x"])
>>> pc.min_max(arr4)
<pyarrow.StructScalar: [('min', 'x'), ('max', 'z')]>