polars.testing.assert_frame_equal#
- polars.testing.assert_frame_equal(
 - left: DataFrame | LazyFrame,
 - right: DataFrame | LazyFrame,
 - *,
 - check_row_order: bool = True,
 - check_column_order: bool = True,
 - check_dtype: bool = True,
 - check_exact: bool = False,
 - rtol: float = 1e-05,
 - atol: float = 1e-08,
 - categorical_as_str: bool = False,
 - nans_compare_equal: bool | None = None,
 Assert that the left and right frame are equal.
Raises a detailed
AssertionErrorif the frames differ. This function is intended for use in unit tests.- Parameters:
 - left
 The first DataFrame or LazyFrame to compare.
- right
 The second DataFrame or LazyFrame to compare.
- check_row_order
 Require row order to match.
Note
Setting this to
Falserequires sorting the data, which will fail on frames that contain unsortable columns.- check_column_order
 Require column order to match.
- check_dtype
 Require data types to match.
- check_exact
 Require data values to match exactly. If set to
False, values are considered equal when within tolerance of each other (seertolandatol). Logical types like dates are always checked exactly.- rtol
 Relative tolerance for inexact checking. Fraction of values in
right.- atol
 Absolute tolerance for inexact checking.
- categorical_as_str
 Cast categorical columns to string before comparing. Enabling this helps compare columns that do not share the same string cache.
- nans_compare_equal
 Consider NaN values to be equal.
Notes
When using pytest, it may be worthwhile to shorten Python traceback printing by passing
--tb=short. The default mode tends to be unhelpfully verbose. More information in the pytest docs.Examples
>>> from polars.testing import assert_frame_equal >>> df1 = pl.DataFrame({"a": [1, 2, 3]}) >>> df2 = pl.DataFrame({"a": [1, 5, 3]}) >>> assert_frame_equal(df1, df2) Traceback (most recent call last): ... AssertionError: Series are different (value mismatch) [left]: [1, 2, 3] [right]: [1, 5, 3]
The above exception was the direct cause of the following exception:
Traceback (most recent call last): … AssertionError: values for column ‘a’ are different