polars.LazyFrame.pipe_with_schema#
- LazyFrame.pipe_with_schema(
- function: Callable[[LazyFrame, Schema], LazyFrame],
Allows to alter the lazy frame during the plan stage with the resolved schema.
In contrast to
pipe, this method does not executefunctionimmediately but only during the plan stage. This allows to use the resolved schema of the input to dynamically alter the lazy frame. This also means that any exceptions raised byfunctionwill only be emitted during the plan stage.Warning
This functionality is considered unstable. It may be changed at any point without it being considered a breaking change.
- Parameters:
- function
Callable; will receive the frame as the first parameter and the resolved schema as the second parameter.
See also
Examples
>>> def cast_to_float_if_necessary( ... lf: pl.LazyFrame, schema: pl.Schema ... ) -> pl.LazyFrame: ... required_casts = [ ... pl.col(name).cast(pl.Float64) ... for name, dtype in schema.items() ... if not dtype.is_float() ... ] ... return lf.with_columns(required_casts) >>> lf = pl.LazyFrame( ... {"a": [1.0, 2.0], "b": ["1.0", "2.5"], "c": [2.0, 3.0]}, ... schema={"a": pl.Float64, "b": pl.String, "c": pl.Float32}, ... ) >>> lf.pipe_with_schema(cast_to_float_if_necessary).collect() shape: (2, 3) ┌─────┬─────┬─────┐ │ a ┆ b ┆ c │ │ --- ┆ --- ┆ --- │ │ f64 ┆ f64 ┆ f32 │ ╞═════╪═════╪═════╡ │ 1.0 ┆ 1.0 ┆ 2.0 │ │ 2.0 ┆ 2.5 ┆ 3.0 │ └─────┴─────┴─────┘