当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python 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')

检查左右 DataFrame 是否相等。

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

参数

left DataFrame

要比较的第一个 DataFrame。

right DataFrame

要比较的第二个 DataFrame。

check_dtype布尔值,默认为真

是否检查 DataFrame dtype 是否相同。

check_index_typebool 或 {‘equiv’},默认 ‘equiv’

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

check_column_typebool 或 {‘equiv’},默认 ‘equiv’

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

check_frame_type布尔值,默认为真

是否检查 DataFrame 类是否相同。

check_less_precisebool 或 int,默认为 False

指定比较精度。仅在 check_exact 为 False 时使用。比较小数点后的 5 位 (False) 或 3 位 (True)。如果是 int,则指定要比较的数字。

比较两个数时,如果第一个数的幅度小于 1e-5,我们直接比较这两个数,并在指定的精度内检查它们是否相等。否则,我们比较第二个数与第一个数的比值,并在指定的精度内检查它是否等于 1。

check_names布尔值,默认为真

是否检查 DataFrame 的indexcolumn 属性的names 属性是否相同。

by_blocks布尔值,默认为 False

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

check_exact布尔值,默认为 False

是否准确比较数字。

check_datetimelike_compat布尔值,默认为 False

比较 datetime-like 这是可比较的忽略 dtype。

check_categorical布尔值,默认为真

是否准确比较内部分类。

check_like布尔值,默认为 False

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

check_freq布尔值,默认为真

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

check_flags布尔值,默认为真

是否检查flags 属性。

rtol浮点数,默认 1e-5

相对容差。仅在 check_exact 为 False 时使用。

atol浮点数,默认 1e-8

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

objstr,默认“数据帧”

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

例子

此示例显示了比较两个相同但具有不同 dtype 列的 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” 不同 [left]:int64 [right]:float64

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

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.testing.assert_frame_equal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。