Skip to content

Schemas

This module contains APIs for interacting with table schemas.

Schema

Bases: Concrete, Coercible, MapSet

An object for holding table schema information.

Attributes

fields: FrozenDict[str, dt.DataType] instance-attribute

A mapping of str to DataType objects representing the type of each column.

Functions

equals(other)

Return whether other is equal to self.

Parameters:

Name Type Description Default
other Schema

Schema to compare self to.

required

Examples:

>>> import ibis
>>> first = ibis.schema({"a": "int"})
>>> second = ibis.schema({"a": "int"})
>>> assert first.equals(second)
>>> third = ibis.schema({"a": "array<int>"})
>>> assert not first.equals(third)

from_dask(dask_schema) classmethod

Return the equivalent ibis schema.

from_numpy(numpy_schema) classmethod

Return the equivalent ibis schema.

from_pandas(pandas_schema) classmethod

Return the equivalent ibis schema.

from_pyarrow(pyarrow_schema) classmethod

Return the equivalent ibis schema.

from_tuples(values) classmethod

Construct a Schema from an iterable of pairs.

Parameters:

Name Type Description Default
values Iterable[tuple[str, str | dt.DataType]]

An iterable of pairs of name and type.

required

Returns:

Type Description
Schema

A new schema

Examples:

>>> import ibis
>>> ibis.Schema.from_tuples([("a", "int"), ("b", "string")])
ibis.Schema {
  a  int64
  b  string
}

name_at_position(i)

Return the name of a schema column at position i.

Parameters:

Name Type Description Default
i int

The position of the column

required

Returns:

Type Description
str

The name of the column in the schema at position i.

Examples:

>>> import ibis
>>> sch = ibis.Schema({"a": "int", "b": "string"})
>>> sch.name_at_position(0)
'a'
>>> sch.name_at_position(1)
'b'

to_dask()

Return the equivalent dask dtypes.

to_numpy()

Return the equivalent numpy dtypes.

to_pandas()

Return the equivalent pandas datatypes.

to_pyarrow()

Return the equivalent pyarrow schema.


Last update: June 22, 2023