Spec-Zone.ru › Polars

Выражения типов данных

Выражения типов данных позволяют лениво определять тип данных столбца или выражения и использовать его в выражениях.

На этой странице представлен обзор всех общедоступных выражений Polars.

class polars.DataTypeExpr

Лениво создаваемый DataType, который можно использовать в Expr.

Предупреждение

Эта функциональность считается нестабильной. Она может быть изменена в любой момент без необходимости считать такое изменение несовместимым.

Это выражение предназначено для представления DataType, которое можно использовать для ссылки на тип данных в ленивом контексте.

Примеры

>>> lf = pl.LazyFrame({"a": [1, 2, 3]})
>>> lf.with_columns(
...     pl.col.a.map_batches(lambda x: x * 2, return_dtype=pl.dtype_of("a"))
... ).collect()
shape: (3, 1)
┌─────┐
│ a   │
│ --- │
│ i64 │
╞═════╡
│ 2   │
│ 4   │
│ 6   │
└─────┘

Методы:

collect_dtype

Материализовать DataTypeExpr в определённом контексте.

default_value

Получить значение по умолчанию для определённого типа.

display

Получить форматированное представление выходного типа данных.

inner_dtype

Получить внутренний тип данных List или Array.

matches

Проверить, соответствует ли выходной тип данных определённому селектору.

to_signed_integer

Получить версию со знаком той же разрядности.

to_unsigned_integer

Получить версию без знака той же разрядности.

wrap_in_array

Получить тип данных, обёрнутый в массив.

wrap_in_list

Получить тип данных, обёрнутый в список.

collect_dtype(
    context: SchemaDict | Schema | DataFrame | LazyFrame,
) → DataType

Материализовать DataTypeExpr в определённом контексте.

Эта функция полезна для отладки выражений типов данных.

Примеры

>>> lf = pl.LazyFrame(
...     {
...         "a": [1, 2, 3],
...     }
... )
>>> pl.dtype_of("a").collect_dtype(lf)
Int64
>>> pl.dtype_of("a").collect_dtype({"a": pl.String})
String
default_value(
    n: int = 1,
    *,
    numeric_to_one: bool = False,
    num_list_values: int = 0,
) → Expr

Получить значение по умолчанию для определённого типа.

  • Для целых чисел и чисел с плавающей точкой значением по умолчанию является ноль, если не указано иное
  • Для временных типов значением по умолчанию является физический ноль
  • pl.Decimal по умолчанию равен нулю
  • pl.String и pl.Binary — это пустая строка
  • pl.List — это пустой список, если не указано иное
  • pl.Array — это внутреннее значение по умолчанию, повторённое по всей форме
  • pl.Struct — это внутреннее значение по умолчанию для всех полей
  • pl.Enum — это первая категория, если она существует
  • pl.Null, pl.Object и pl.Categorical — это null.
Параметры:
n

Количество типов, для которых требуется значение

numeric_to_one

Использовать 1 вместо 0 в качестве значения по умолчанию для числовых типов

num_list_values

Количество значений в списке

Примеры

>>> uint32 = pl.UInt32.to_dtype_expr()
>>> pl.select(default=uint32.default_value())
shape: (1, 1)
┌─────────┐
│ default │
│ ---     │
│ u32     │
╞═════════╡
│ 0       │
└─────────┘
display() → Expr

Получить форматированное представление выходного типа данных.

Примеры

>>> df = pl.DataFrame(
...     {
...         "a": [1, 2, 3],
...         "b": ["X", "Y", "Z"],
...         "c": [1.3, 3.7, 4.2],
...     }
... )
>>> df.select(
...     a=pl.dtype_of("a").display(),
...     b=pl.dtype_of("b").display(),
...     c=pl.dtype_of("c").display(),
... ).transpose(include_header=True, column_names=["dtype"])
shape: (3, 2)
┌────────┬───────┐
│ column ┆ dtype │
│ ---    ┆ ---   │
│ str    ┆ str   │
╞════════╪═══════╡
│ a      ┆ i64   │
│ b      ┆ str   │
│ c      ┆ f64   │
└────────┴───────┘
inner_dtype() → DataTypeExpr

Получить внутренний тип данных List или Array.

matches(
    selector: Selector,
) → Expr

Проверить, соответствует ли выходной тип данных определённому селектору.

Примеры

>>> import polars.selectors as cs
>>> pl.DataFrame(
...     {
...         "a": [1, 2, 3],
...     }
... ).select(
...     a_is_string=pl.dtype_of("a").matches(cs.string()),
...     a_is_integer=pl.dtype_of("a").matches(cs.integer()),
... )
shape: (1, 2)
┌─────────────┬──────────────┐
│ a_is_string ┆ a_is_integer │
│ ---         ┆ ---          │
│ bool        ┆ bool         │
╞═════════════╪══════════════╡
│ false       ┆ true         │
└─────────────┴──────────────┘
to_signed_integer() → DataTypeExpr

Получить версию со знаком той же разрядности.

Примеры

>>> uint32 = pl.UInt32.to_dtype_expr()
>>> uint32.to_signed_integer().collect_dtype({})
Int32
to_unsigned_integer() → DataTypeExpr

Получить версию без знака той же разрядности.

Примеры

>>> int32 = pl.Int32.to_dtype_expr()
>>> int32.to_unsigned_integer().collect_dtype({})
UInt32
wrap_in_array(
    *,
    width: int,
) → DataTypeExpr

Получить тип данных, обёрнутый в массив.

Примеры

>>> pl.Int32.to_dtype_expr().wrap_in_array(width=5).collect_dtype({})
Array(Int32, shape=(5,))
wrap_in_list() → DataTypeExpr

Получить тип данных, обёрнутый в список.

Примеры

>>> pl.Int32.to_dtype_expr().wrap_in_list().collect_dtype({})
List(Int32)

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

Spec-Zone.ru

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