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=NoDefault.no_default, check_names=True, by_blocks=False, check_exact=False, check_datetimelike_compat=False, check_categorical=True, check_like=False, check_freq=True, check_flags=True, rtol=1e-05, atol=1e-08, 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 or {‘equiv’}, default ‘equiv’


Whether to check the Index class, dtype and inferred_type are identical.  
check_column_type:bool or {‘equiv’}, default ‘equiv’


Whether to check the columns class, dtype and inferred_type are identical. Is passed as the exact argument of assert_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. When comparing two numbers, if the first number has magnitude less than 1e-5, we compare the two numbers directly and check whether they are equivalent within the specified precision. Otherwise, we compare the ratio of the second number to the first number and check whether it is equivalent to 1 within the specified precision.  Deprecated since version 1.1.0: Use rtol and atol instead to define relative/absolute tolerance, respectively. Similar to math.isclose().   
check_names:bool, default True


Whether to check that the names attribute for both the index and column attributes of the DataFrame is identical.  
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.  
check_freq:bool, default True


Whether to check the freq attribute on a DatetimeIndex or TimedeltaIndex.  New in version 1.1.0.   
check_flags:bool, default True


Whether to check the flags attribute.  
rtol:float, default 1e-5


Relative tolerance. Only used when check_exact is False.  New in version 1.1.0.   
atol:float, default 1e-8


Absolute tolerance. Only used when check_exact is False.  New in version 1.1.0.   
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.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 of DataFrame.iloc[:, 1] (column name="b") 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)