pandas.testing.assert_frame_equal #

熊猫测试。assert_frame_equal (,, check_dtype = True , check_index_type = 'equiv' , check_column_type = 'equiv' , check_frame_type = True , check_names = True , by_blocks = False , check_exact = _NoDefault.no_default , check_datetimelike_compat = False , check_categorical = True , check_like = False , check_freq = True , check_flags = True , rtol = _NoDefault.no_default , atol = _NoDefault.no_default , obj = 'DataFrame' ) [来源] #

检查左右 DataFrame 是否相等。

此函数旨在比较两个 DataFrame 并输出任何差异。它主要用于单元测试。附加参数允许改变所执行的相等性检查的严格性。

参数
数据框

第一个要比较的 DataFrame。

数据框

要比较的第二个 DataFrame。

check_dtype bool, 默认 True

是否检查DataFrame dtype是否相同。

check_index_type bool 或 {'equiv'},默认 'equiv'

是否检查Index类,dtype和inferred_type是否相同。

check_column_type bool 或 {'equiv'},默认 'equiv'

是否检查列 class、dtype 和 inferred_type 是否相同。作为exact的参数 传递assert_index_equal()

check_frame_type bool, 默认 True

是否检查DataFrame类是否相同。

check_names bool, 默认 True

是否检查DataFrame 的索引属性的名称属性是否相同。

by_blocks bool, 默认 False

指定如何比较内部数据。如果为 False,则按列进行比较。如果为 True,则按块进行比较。

check_exact bool, 默认 False

是否精确比较数字。

在版本 2.2.0 中更改:check_exact如果未指定,rtol和,则整数数据类型默认为 True atol

check_datetimelike_compat bool, 默认 False

比较类似 datetime 的结果,忽略 dtype。

check_categorical bool, 默认 True

是否精确比较内部Categorical。

check_like bool, 默认 False

如果为 True,则忽略索引和列的顺序。注意:索引标签必须与其各自的行匹配(与列中的相同) - 相同的标签必须具有相同的数据。

check_freq bool, 默认 True

是否检查DatetimeIndex 或 TimedeltaIndex 的freq属性。

check_flags bool, 默认 True

是否检查flags属性。

rtol浮点数,默认 1e-5

相对耐受性。仅当 check_exact 为 False 时使用。

atol浮点型,默认 1e-8

绝对的宽容。仅当 check_exact 为 False 时使用。

obj str,默认“DataFrame”

指定正在比较的对象名称,内部用于显示适当的断言消息。

也可以看看

assert_series_equal

断言系列相等的等效方法。

DataFrame.equals

检查 DataFrame 相等性。

例子

此示例显示比较两个相同但列数据类型不同的 DataFrame。

>>> 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 等于其自身。

>>> assert_frame_equal(df1, df1)

df1 与 df2 不同,因为列“b”的类型不同。

>>> assert_frame_equal(df1, df2)
Traceback (most recent call last):
...
AssertionError: Attributes of DataFrame.iloc[:, 1] (column name="b") are different

属性“dtype”不同 [左]:int64 [右]:float64

使用 check_dtype 忽略列中不同的 dtype。

>>> assert_frame_equal(df1, df2, check_dtype=False)