polars.datatypes.Struct#

class polars.datatypes.Struct(fields: Sequence[Field] | SchemaDict)[source]#

Struct composite type.

Parameters:
fields

The fields that make up the struct. Can be either a sequence of Field objects or a mapping of column names to data types.

Examples

Initialize using a dictionary:

>>> dtype = pl.Struct({"a": pl.Int8, "b": pl.List(pl.String)})
>>> dtype
Struct({'a': Int8, 'b': List(String)})

Initialize using a list of Field objects:

>>> dtype = pl.Struct([pl.Field("a", pl.Int8), pl.Field("b", pl.List(pl.String))])
>>> dtype
Struct({'a': Int8, 'b': List(String)})

When initializing a Series, Polars can infer a struct data type from the data.

>>> s = pl.Series([{"a": 1, "b": ["x", "y"]}, {"a": 2, "b": ["z"]}])
>>> s
shape: (2,)
Series: '' [struct[2]]
[
        {1,["x", "y"]}
        {2,["z"]}
]
>>> s.dtype
Struct({'a': Int64, 'b': List(String)})
__init__(fields: Sequence[Field] | SchemaDict) None[source]#

Methods

__init__(fields)

base_type()

Return this DataType's fundamental/root type class.

from_python(py_type)

Return the Polars data type corresponding to a given Python type.

is_(other)

Check if this DataType is the same as another DataType.

is_decimal()

Check whether the data type is a decimal type.

is_float()

Check whether the data type is a floating point type.

is_integer()

Check whether the data type is an integer type.

is_nested()

Check whether the data type is a nested type.

is_numeric()

Check whether the data type is a numeric type.

is_signed_integer()

Check whether the data type is a signed integer type.

is_temporal()

Check whether the data type is a temporal type.

is_unsigned_integer()

Check whether the data type is an unsigned integer type.

to_python()

Return the Python type corresponding to this Polars data type.

to_schema()

Return Struct dtype as a schema dict.

Attributes

fields