Spec-Zone.ru › Polars

Схема

class polars.Schema(
    schema: Mapping[str,
    SchemaInitDataType] | Iterable[tuple[str,
    SchemaInitDataType] | ArrowSchemaExportable] | ArrowSchemaExportable | None = None,
    *,
    check_dtypes: bool = True,
)

Упорядоченное соответствие имён столбцов их типам данных.

Параметры:
schema

Определение схемы, заданное именами столбцов и соответствующими им типами данных Polars. Принимает отображение, итерируемый объект кортежей или любой объект, реализующий интерфейс PyCapsule __arrow_c_schema__ (например, схемы pyarrow).

Примеры

Определите схему, передав экземпляры типов данных.

>>> schema = pl.Schema(
...     {
...         "foo": pl.String(),
...         "bar": pl.Duration("us"),
...         "baz": pl.Array(pl.Int8, 4),
...     }
... )
>>> schema
Schema({'foo': String, 'bar': Duration(time_unit='us'), 'baz': Array(Int8, shape=(4,))})

Получите тип данных, связанный с заданным именем столбца.

>>> schema["baz"]
Array(Int8, shape=(4,))

Получите различные свойства схемы с помощью методов names, dtypes и len.

>>> schema.names()
['foo', 'bar', 'baz']
>>> schema.dtypes()
[String, Duration(time_unit='us'), Array(Int8, shape=(4,))]
>>> schema.len()
3

Импортируйте схему pyarrow.

>>> import pyarrow as pa
>>> pl.Schema(pa.schema([pa.field("x", pa.int32())]))
Schema({'x': Int32})

Экспортируйте схему в pyarrow.

>>> pa.schema(pl.Schema({"x": pl.Int32}))
x: int32

Методы:

contains_dtype

Проверяет, содержит ли схема заданный тип данных.

dtypes

Возвращает типы данных схемы.

len

Возвращает количество записей в схеме.

names

Возвращает имена столбцов схемы.

to_arrow

Преобразует схему в схему pyarrow.

to_frame

Создаёт пустой DataFrame (или LazyFrame) на основе этой схемы.

to_python

Возвращает словарь имён столбцов и типов Python.

contains_dtype(
    dtype: DataType,
    *,
    recursive: bool,
) → bool

Проверяет, содержит ли схема заданный тип данных.

Параметры:
dtype

Тип данных, который нужно найти.

recursive

Если False, проверяются только типы данных столбцов верхнего уровня. Если True, поиск также выполняется во вложенных типах (List, Array, Struct).

Примеры

>>> s = pl.Schema({"x": pl.Int64(), "y": pl.List(pl.Float64)})
>>> s.contains_dtype(pl.Int64, recursive=False)
True
>>> s.contains_dtype(pl.Float64, recursive=False)
False
>>> s.contains_dtype(pl.Float64, recursive=True)
True
dtypes() → list[DataType]

Возвращает типы данных схемы.

Примеры

>>> s = pl.Schema({"x": pl.UInt8(), "y": pl.List(pl.UInt8)})
>>> s.dtypes()
[UInt8, List(UInt8)]
len() → int

Возвращает количество записей в схеме.

Примеры

>>> s = pl.Schema({"x": pl.Int32(), "y": pl.List(pl.String)})
>>> s.len()
2
>>> len(s)
2
names() → list[str]

Возвращает имена столбцов схемы.

Примеры

>>> s = pl.Schema({"x": pl.Float64(), "y": pl.Datetime(time_zone="UTC")})
>>> s.names()
['x', 'y']
to_arrow(
    *,
    compat_level: CompatLevel | None = None,
) → Schema

Преобразует схему в схему pyarrow.

Параметры:
compat_level

Использует заданный уровень совместимости при экспорте внутренних типов данных Polars.

Примеры

>>> pl.Schema({"x": pl.String}).to_arrow()
x: string_view
to_frame(
    *,
    eager: bool = True,
) → DataFrame | LazyFrame

Создаёт пустой DataFrame (или LazyFrame) на основе этой схемы.

Параметры:
eager

Если True, создаётся DataFrame; в противном случае создаётся LazyFrame.

Примеры

>>> s = pl.Schema({"x": pl.Int32(), "y": pl.String()})
>>> s.to_frame()
shape: (0, 2)
┌─────┬─────┐
│ x   ┆ y   │
│ --- ┆ --- │
│ i32 ┆ str │
╞═════╪═════╡
└─────┴─────┘
>>> s.to_frame(eager=False)  
<LazyFrame at 0x11BC0AD80>
to_python() → dict[str, type]

Возвращает словарь имён столбцов и типов Python.

Примеры

>>> s = pl.Schema(
...     {
...         "x": pl.Int8(),
...         "y": pl.String(),
...         "z": pl.Duration("us"),
...     }
... )
>>> s.to_python()
{'x': <class 'int'>, 'y':  <class 'str'>, 'z': <class 'datetime.timedelta'>}

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/schema/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API