Spec-Zone.ru › Polars

polars.testing.parametric.dataframes

polars.testing.parametric.dataframes(
    cols: int | column | Sequence[column] | None = None,
    *,
    lazy: bool = False,
    min_cols: int = 1,
    max_cols: int = 5,
    min_size: int = 0,
    max_size: int = 5,
    include_cols: Sequence[column] | column | None = None,
    allow_null: bool | Mapping[str,
    bool] = True,
    allow_chunks: bool = True,
    allow_masked_out: bool = True,
    allowed_dtypes: Collection[PolarsDataType] | PolarsDataType | None = None,
    excluded_dtypes: Collection[PolarsDataType] | PolarsDataType | None = None,
    allow_time_zones: bool = True,
    **kwargs: Any,
) → SearchStrategy[ForwardRef('DataFrame | LazyFrame')]

Стратегия Hypothesis для создания DataFrame или LazyFrame Polars.

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

В настоящее время эта функциональность считается нестабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушающим обратную совместимость изменением.

Параметры:
cols{int, columns}, optional

целое число столбцов для создания либо последовательность объектов column, описывающих данные столбцов DataFrame.

lazybool, optional

создавать LazyFrame вместо DataFrame.

min_colsint, optional

если точный размер не задан, здесь можно установить минимальное значение (по умолчанию 0).

max_colsint, optional

если точный размер не задан, здесь можно установить максимальное значение (по умолчанию MAX_COLS).

min_sizeint, optional

если точный размер не задан, установить минимальное количество строк в DataFrame.

max_sizeint, optional

если точный размер не задан, установить максимальное количество строк в DataFrame.

include_cols[column], optional

список объектов column, включаемых в созданный DataFrame. Обратите внимание, что явно заданные столбцы добавляются в конец списка уже существующих столбцов (если они есть).

allow_nullbool or Mapping[str, bool]

Разрешить null в качестве возможных значений и использовать тип данных Null по умолчанию. Принимает логическое значение или словарь, сопоставляющий имена столбцов логическим значениям.

allow_chunksbool

Разрешить DataFrame содержать несколько чанков.

allow_masked_outbool

Разрешить null содержать замаскированные элементы.

allowed_dtypes{list,set}, optional

при автоматической генерации данных разрешить только эти типы данных.

excluded_dtypes{list,set}, optional

при автоматической генерации данных исключить эти типы данных.

allow_time_zones

Разрешить создавать столбцы Datetime с часовым поясом.

**kwargs

Дополнительные именованные аргументы, передаваемые базовым стратегиям генерации данных.

sizeint, optional

если задано, будет создан DataFrame точно такого размера (параметры длины min_size/max_size игнорируются).

Устарело с версии 1.0.0: Вместо этого используйте min_size и max_size.

null_probability{float, dict[str,float]}, optional

вероятность (от 0.0 => 1.0) того, что сгенерированное значение будет None. Она применяется независимо от значений None, созданных базовой стратегией, и может задаваться отдельно для каждого столбца (если передан словарь {col:pct}) или глобально. Если для столбца задан null_probability, это значение имеет приоритет над глобальным.

Устарело с версии 0.20.26: Вместо этого используйте allow_null.

allow_infinitiesbool, optional

при необходимости запретить генерацию значений +/-inf для типов данных с плавающей точкой.

Устарело с версии 0.20.26: Вместо этого используйте allow_infinity.

Примечания

На практике эта стратегия применяется как декоратор модульного теста и предоставляет стратегию, создающую DataFrame или LazyFrame с заданными характеристиками для этого теста. При разработке стратегии или теста также может быть полезно напрямую вызвать .example() для заданной стратегии, чтобы увидеть конкретные примеры сгенерированных данных.

Примеры

Обычно стратегия используется для создания series в модульном тесте:

>>> from polars.testing.parametric import dataframes
>>> from hypothesis import given
>>> @given(df=dataframes(min_size=3, max_size=5))
... def test_df_height(df: pl.DataFrame) -> None:
...     assert 3 <= df.height <= 5

Также можно интерактивно получать примеры с помощью метода .example(). Этого следует избегать при запуске тестов.

>>> df = dataframes(allowed_dtypes=[pl.Datetime, pl.Float64], max_cols=3)
>>> df.example()  
shape: (3, 3)
┌─────────────┬────────────────────────────┬───────────┐
│ col0        ┆ col1                       ┆ col2      │
│ ---         ┆ ---                        ┆ ---       │
│ f64         ┆ datetime[ns]               ┆ f64       │
╞═════════════╪════════════════════════════╪═══════════╡
│ NaN         ┆ 1844-07-05 06:19:48.848808 ┆ 3.1436e16 │
│ -1.9914e218 ┆ 2068-12-01 23:05:11.412277 ┆ 2.7415e16 │
│ 0.5         ┆ 2095-11-19 22:05:17.647961 ┆ -0.5      │
└─────────────┴────────────────────────────┴───────────┘

Используйте column, чтобы точнее контролировать, какие именно столбцы создаются.

>>> from polars.testing.parametric import column
>>> dfs = dataframes(
...     [
...         column("x", dtype=pl.Int32),
...         column("y", dtype=pl.Float64),
...     ],
...     min_size=2,
...     max_size=2,
... )
>>> dfs.example()  
shape: (2, 2)
┌───────────┬────────────┐
│ x         ┆ y          │
│ ---       ┆ ---        │
│ i32       ┆ f64        │
╞═══════════╪════════════╡
│ -15836    ┆ 1.1755e-38 │
│ 575050513 ┆ NaN        │
└───────────┴────────────┘

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

Spec-Zone.ru

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