polars.Expr.floordiv
-
Метод, эквивалентный оператору целочисленного деления
expr // other.- Параметры:
-
- other
-
Числовой литерал или значение выражения.
См. также
Примеры
>>> df = pl.DataFrame({"x": [1, 2, 3, 4, 5]}) >>> df.with_columns( ... pl.col("x").truediv(2).alias("x/2"), ... pl.col("x").floordiv(2).alias("x//2"), ... ) shape: (5, 3) ┌─────┬─────┬──────┐ │ x ┆ x/2 ┆ x//2 │ │ --- ┆ --- ┆ --- │ │ i64 ┆ f64 ┆ i64 │ ╞═════╪═════╪══════╡ │ 1 ┆ 0.5 ┆ 0 │ │ 2 ┆ 1.0 ┆ 1 │ │ 3 ┆ 1.5 ┆ 1 │ │ 4 ┆ 2.0 ┆ 2 │ │ 5 ┆ 2.5 ┆ 2 │ └─────┴─────┴──────┘Обратите внимание, что
floordivв Polars немного отличается от целочисленного деления с округлением вниз в Python. Например, рассмотрим деление 6.0 на 0.1 с округлением вниз. В Python результат будет таким:>>> 6.0 // 0.1 59.0
поскольку
0.1внутри программы не представлено именно этим значением, а имеет немного большее значение. Поэтому результат деления немного меньше 60, и операция округления вниз возвращает 59.0.В Polars сначала выполняется деление с плавающей точкой, в результате которого получается значение с плавающей точкой 60.0, а затем выполняется операция округления вниз с помощью
floor:>>> df = pl.DataFrame({"x": [6.0, 6.03]}) >>> df.with_columns( ... pl.col("x").truediv(0.1).alias("x/0.1"), ... ).with_columns( ... pl.col("x/0.1").floor().alias("x/0.1 floor"), ... ) shape: (2, 3) ┌──────┬───────┬─────────────┐ │ x ┆ x/0.1 ┆ x/0.1 floor │ │ --- ┆ --- ┆ --- │ │ f64 ┆ f64 ┆ f64 │ ╞══════╪═══════╪═════════════╡ │ 6.0 ┆ 60.0 ┆ 60.0 │ │ 6.03 ┆ 60.3 ┆ 60.0 │ └──────┴───────┴─────────────┘что даёт более интуитивный результат 60.0. Строка с x = 6.03 включена, чтобы продемонстрировать эффект операции округления вниз.
floordivобъединяет эти два шага, чтобы получить тот же результат с помощью одного выражения:>>> df.with_columns( ... pl.col("x").floordiv(0.1).alias("x//0.1"), ... ) shape: (2, 2) ┌──────┬────────┐ │ x ┆ x//0.1 │ │ --- ┆ --- │ │ f64 ┆ f64 │ ╞══════╪════════╡ │ 6.0 ┆ 60.0 │ │ 6.03 ┆ 60.0 │ └──────┴────────┘
Expr.floordiv(
other: Any,
) → Expr
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.floordiv.html