Выражения типов данных
Выражения типов данных позволяют лениво определять тип данных столбца или выражения и использовать его в выражениях.
На этой странице представлен обзор всех общедоступных выражений Polars.
-
Лениво создаваемый
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Получить тип данных, обёрнутый в список.
-
Материализовать
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
collect_dtype( context: SchemaDict | Schema | DataFrame | LazyFrame, ) → DataType-
Получить значение по умолчанию для определённого типа.
- Для целых чисел и чисел с плавающей точкой значением по умолчанию является ноль, если не указано иное
- Для временных типов значением по умолчанию является физический ноль
-
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 │ └─────────┘
default_value( n: int = 1, *, numeric_to_one: bool = False, num_list_values: int = 0, ) → 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 │ └────────┴───────┘
display() → Expr
-
Получить внутренний тип данных List или Array.
inner_dtype() → DataTypeExpr
-
Проверить, соответствует ли выходной тип данных определённому селектору.
Примеры
>>> 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 │ └─────────────┴──────────────┘
matches( selector: Selector, ) → Expr-
Получить версию со знаком той же разрядности.
Примеры
>>> uint32 = pl.UInt32.to_dtype_expr() >>> uint32.to_signed_integer().collect_dtype({}) Int32
to_signed_integer() → DataTypeExpr
-
Получить версию без знака той же разрядности.
Примеры
>>> int32 = pl.Int32.to_dtype_expr() >>> int32.to_unsigned_integer().collect_dtype({}) UInt32
to_unsigned_integer() → DataTypeExpr
-
Получить тип данных, обёрнутый в массив.
Примеры
>>> pl.Int32.to_dtype_expr().wrap_in_array(width=5).collect_dtype({}) Array(Int32, shape=(5,))
wrap_in_array( *, width: int, ) → DataTypeExpr-
Получить тип данных, обёрнутый в список.
Примеры
>>> pl.Int32.to_dtype_expr().wrap_in_list().collect_dtype({}) List(Int32)
wrap_in_list() → DataTypeExpr
-
class polars.DataTypeExpr
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/datatype_expr/index.html