ars.exceptions.DuplicateError.html)
    * [ polars.exceptions.InvalidOperationError ](../../api/polars.exceptions.InvalidOperationError.html)
    * [ polars.exceptions.NoDataError ](../../api/polars.exceptions.NoDataError.html)
    * [ polars.exceptions.NoRowsReturnedError ](../../api/polars.exceptions.NoRowsReturnedError.html)
    * [ polars.exceptions.PolarsError ](../../api/polars.exceptions.PolarsError.html)
    * [ polars.exceptions.PolarsPanicError ](../../api/polars.exceptions.PolarsPanicError.html)
    * [ polars.exceptions.RowsError ](../../api/polars.exceptions.RowsError.html)
    * [ polars.exceptions.SchemaError ](../../api/polars.exceptions.SchemaError.html)
    * [ polars.exceptions.SchemaFieldNotFoundError ](../../api/polars.exceptions.SchemaFieldNotFoundError.html)
    * [ polars.exceptions.ShapeError ](../../api/polars.exceptions.ShapeError.html)
    * [ polars.exceptions.StructFieldNotFoundError ](../../api/polars.exceptions.StructFieldNotFoundError.html)
    * [ polars.exceptions.TooManyRowsReturnedError ](../../api/polars.exceptions.TooManyRowsReturnedError.html)

  * [ Testing ](../../testing.html) __
    * [ polars.testing.assert_frame_equal ](../../api/polars.testing.assert_frame_equal.html)
    * [ polars.testing.assert_frame_not_equal ](../../api/polars.testing.assert_frame_not_equal.html)
    * [ polars.testing.assert_series_equal ](../../api/polars.testing.assert_series_equal.html)
    * [ polars.testing.assert_series_not_equal ](../../api/polars.testing.assert_series_not_equal.html)
    * [ polars.testing.parametric.dataframes ](../../api/polars.testing.parametric.dataframes.html)
    * [ polars.testing.parametric.series ](../../api/polars.testing.parametric.series.html)
    * [ polars.testing.parametric.column ](../../api/polars.testing.parametric.column.html)
    * [ polars.testing.parametric.columns ](../../api/polars.testing.parametric.columns.html)
    * [ polars.testing.parametric.create_list_strategy ](../../api/polars.testing.parametric.create_list_strategy.html)
    * [ polars.testing.parametric.load_profile ](../../api/polars.testing.parametric.load_profile.html)
    * [ polars.testing.parametric.set_profile ](../../api/polars.testing.parametric.set_profile.html)

  * [ Metadata ](../../metadata.html) __
    * [ polars.build_info ](../../api/polars.build_info.html)
    * [ polars.get_index_type ](../../api/polars.get_index_type.html)
    * [ polars.show_versions ](../../api/polars.show_versions.html)
    * [ polars.thread_pool_size ](../../api/polars.thread_pool_size.html)
    * [ polars.threadpool_size ](../../api/polars.threadpool_size.html)

  * [ __ ](../../../index.html)
  * [ Python API reference ](../../index.html)
  * __
  * [ Manipulation/selection ](../modify_select.html)
  * polars.LazyF... 

#  polars.LazyFrame.with_context  #

LazyFrame.  with_context  (  _ other  :  Self  |  [ list  ](https://docs.python.org/3/library/stdtypes.html#list "\(in Python v3.12\)") [  Self  ]  _ )  →  Self  [ [source]  ](https://github.com/pola-rs/polars/blob/main/py-polars/polars/lazyframe/frame.py#L4188-L4245) # 
    

Add an external context to the computation graph.

This allows expressions to also access columns from DataFrames that are not
part of this one.

Parameters  :

    

**other**

    

Lazy DataFrame to join with.

Examples

    
    
    >>> lf = pl.LazyFrame({"a": [1, 2, 3], "b": ["a", "c", None]})
    >>> lf_other = pl.LazyFrame({"c": ["foo", "ham"]})
    >>> lf.with_context(lf_other).select(
    ...     pl.col("b") + pl.col("c").first()
    ... ).collect()
    shape: (3, 1)
    ┌──────┐
    │ b    │
    │ ---  │
    │ str  │
    ╞══════╡
    │ afoo │
    │ cfoo │
    │ null │
    └──────┘
    

Fill nulls with the median from another DataFrame:

    
    
    >>> train_lf = pl.LazyFrame(
    ...     {"feature_0": [-1.0, 0, 1], "feature_1": [-1.0, 0, 1]}
    ... )
    >>> test_lf = pl.LazyFrame(
    ...     {"feature_0": [-1.0, None, 1], "feature_1": [-1.0, 0, 1]}
    ... )
    >