polars.testing.parametric.dataframes
-
Стратегия 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 │ └───────────┴────────────┘
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')]
© 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