pandas.testing.assert_frame_equal
-
pandas.testing.assert_frame_equal(left, right, check_dtype=True, check_index_type='equiv', check_column_type='equiv', check_frame_type=True, check_less_precise=False, check_names=True, by_blocks=False, check_exact=False, check_datetimelike_compat=False, check_categorical=True, check_like=False, obj='DataFrame')
[source] -
Check that left and right DataFrame are equal.
This function is intended to compare two DataFrames and output any differences. Is is mostly intended for use in unit tests. Additional parameters allow varying the strictness of the equality checks performed.
Parameters: -
left : DataFrame
-
First DataFrame to compare.
-
right : DataFrame
-
Second DataFrame to compare.
-
check_dtype : bool, default True
-
Whether to check the DataFrame dtype is identical.
-
check_index_type : bool / string {‘equiv’}, default ‘equiv’
-
Whether to check the Index class, dtype and inferred_type are identical.
-
check_column_type : bool / string {‘equiv’}, default ‘equiv’
-
Whether to check the columns class, dtype and inferred_type are identical. Is passed as the
exact
argument ofassert_index_equal()
. -
check_frame_type : bool, default True
-
Whether to check the DataFrame class is identical.
-
check_less_precise : bool or int, default False
-
Specify comparison precision. Only used when check_exact is False. 5 digits (False) or 3 digits (True) after decimal points are compared. If int, then specify the digits to compare.
-
check_names : bool, default True
-
Whether to check that the
names
attribute for both theindex
andcolumn
attributes of the DataFrame is identical, i.e.- left.index.names == right.index.names
- left.columns.names == right.columns.names
-
by_blocks : bool, default False
-
Specify how to compare internal data. If False, compare by columns. If True, compare by blocks.
-
check_exact : bool, default False
-
Whether to compare number exactly.
-
check_datetimelike_compat : bool, default False
-
Compare datetime-like which is comparable ignoring dtype.
-
check_categorical : bool, default True
-
Whether to compare internal Categorical exactly.
-
check_like : bool, default False
-
If True, ignore the order of index & columns. Note: index labels must match their respective rows (same as in columns) - same labels must be with the same data.
-
obj : str, default ‘DataFrame’
-
Specify object name being compared, internally used to show appropriate assertion message.
See also
-
assert_series_equal
- Equivalent method for asserting Series equality.
-
DataFrame.equals
- Check DataFrame equality.
Examples
This example shows comparing two DataFrames that are equal but with columns of differing dtypes.
>>> from pandas.util.testing import assert_frame_equal >>> df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) >>> df2 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]})
df1 equals itself. >>> assert_frame_equal(df1, df1)
df1 differs from df2 as column ‘b’ is of a different type. >>> assert_frame_equal(df1, df2) Traceback (most recent call last): AssertionError: Attributes are different
Attribute “dtype” are different [left]: int64 [right]: float64
Ignore differing dtypes in columns with check_dtype. >>> assert_frame_equal(df1, df2, check_dtype=False)
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.testing.assert_frame_equal.html