pyarrow.UnionType#

class pyarrow.UnionType#

Bases: DataType

Base class for union data types.

Examples

Create an instance of a dense UnionType using pa.union:

>>> import pyarrow as pa
>>> pa.union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())],
...          mode=pa.lib.UnionMode_DENSE),
(DenseUnionType(dense_union<a: fixed_size_binary[10]=0, b: string=1>),)

Create an instance of a dense UnionType using pa.dense_union:

>>> pa.dense_union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())])
DenseUnionType(dense_union<a: fixed_size_binary[10]=0, b: string=1>)

Create an instance of a sparse UnionType using pa.union:

>>> pa.union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())],
...          mode=pa.lib.UnionMode_SPARSE),
(SparseUnionType(sparse_union<a: fixed_size_binary[10]=0, b: string=1>),)

Create an instance of a sparse UnionType using pa.sparse_union:

>>> pa.sparse_union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())])
SparseUnionType(sparse_union<a: fixed_size_binary[10]=0, b: string=1>)
__init__(*args, **kwargs)#

Methods

__init__(*args, **kwargs)

equals(self, other, *[, check_metadata])

Return true if type is equivalent to passed value.

field(self, i)

Return a child field by its numeric index.

to_pandas_dtype(self)

Return the equivalent NumPy / Pandas dtype.

Attributes

bit_width

Bit width for fixed width type.

byte_width

Byte width for fixed width type.

has_variadic_buffers

If True, the number of expected buffers is only lower-bounded by num_buffers.

id

mode

The mode of the union ("dense" or "sparse").

num_buffers

Number of data buffers required to construct Array type excluding children.

num_fields

The number of child fields.

type_codes

The type code to indicate each data type in this union.

bit_width#

Bit width for fixed width type.

Examples

>>> import pyarrow as pa
>>> pa.int64()
DataType(int64)
>>> pa.int64().bit_width
64
byte_width#

Byte width for fixed width type.

Examples

>>> import pyarrow as pa
>>> pa.int64()
DataType(int64)
>>> pa.int64().byte_width
8
equals(self, other, *, check_metadata=False)#

Return true if type is equivalent to passed value.

Parameters:
otherDataType or str convertible to DataType
check_metadatabool

Whether nested Field metadata equality should be checked as well.

Returns:
is_equalbool

Examples

>>> import pyarrow as pa
>>> pa.int64().equals(pa.string())
False
>>> pa.int64().equals(pa.int64())
True
field(self, i) Field#

Return a child field by its numeric index.

Parameters:
iint
Returns:
pyarrow.Field

Examples

>>> import pyarrow as pa
>>> union = pa.sparse_union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())])
>>> union[0]
pyarrow.Field<a: fixed_size_binary[10]>
has_variadic_buffers#

If True, the number of expected buffers is only lower-bounded by num_buffers.

Examples

>>> import pyarrow as pa
>>> pa.int64().has_variadic_buffers
False
>>> pa.string_view().has_variadic_buffers
True
id#
mode#

The mode of the union (“dense” or “sparse”).

Examples

>>> import pyarrow as pa
>>> union = pa.sparse_union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())])
>>> union.mode
'sparse'
num_buffers#

Number of data buffers required to construct Array type excluding children.

Examples

>>> import pyarrow as pa
>>> pa.int64().num_buffers
2
>>> pa.string().num_buffers
3
num_fields#

The number of child fields.

Examples

>>> import pyarrow as pa
>>> pa.int64()
DataType(int64)
>>> pa.int64().num_fields
0
>>> pa.list_(pa.string())
ListType(list<item: string>)
>>> pa.list_(pa.string()).num_fields
1
>>> struct = pa.struct({'x': pa.int32(), 'y': pa.string()})
>>> struct.num_fields
2
to_pandas_dtype(self)#

Return the equivalent NumPy / Pandas dtype.

Examples

>>> import pyarrow as pa
>>> pa.int64().to_pandas_dtype()
<class 'numpy.int64'>
type_codes#

The type code to indicate each data type in this union.

Examples

>>> import pyarrow as pa
>>> union = pa.sparse_union([pa.field('a', pa.binary(10)), pa.field('b', pa.string())])
>>> union.type_codes
[0, 1]