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)