用法:
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_type:bool 或 {‘equiv’},默认 ‘equiv’
是否检查Index类,dtype和inferred_type是否相同。
- check_column_type:bool 或 {‘equiv’},默认 ‘equiv’
是否检查列类、dtype 和inferred_type 是否相同。作为
assert_index_equal()
的exact
参数传递。- check_frame_type:布尔值,默认为真
是否检查 DataFrame 类是否相同。
- check_less_precise:bool 或 int,默认为 False
指定比较精度。仅在 check_exact 为 False 时使用。比较小数点后的 5 位 (False) 或 3 位 (True)。如果是 int,则指定要比较的数字。
比较两个数时,如果第一个数的幅度小于 1e-5,我们直接比较这两个数,并在指定的精度内检查它们是否相等。否则,我们比较第二个数与第一个数的比值,并在指定的精度内检查它是否等于 1。
- check_names:布尔值,默认为真
是否检查 DataFrame 的
index
和column
属性的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 时使用。
- obj:str,默认“数据帧”
指定要比较的对象名称,内部用于显示适当的断言消息。
参数:
例子:
此示例显示了比较两个相同但具有不同 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)
相关用法
- Python pandas.testing.assert_index_equal用法及代码示例
- Python pandas.testing.assert_series_equal用法及代码示例
- Python pandas.testing.assert_extension_array_equal用法及代码示例
- Python pandas.tseries.offsets.BusinessMonthEnd用法及代码示例
- Python pandas.tseries.offsets.BQuarterBegin用法及代码示例
- Python pandas.tseries.offsets.DateOffset用法及代码示例
- Python pandas.to_numeric用法及代码示例
- Python pandas.to_datetime用法及代码示例
- Python pandas.timedelta_range用法及代码示例
- Python pandas.to_markdown()用法及代码示例
- Python pandas.to_timedelta用法及代码示例
- Python pandas.tseries.offsets.BusinessMonthBegin用法及代码示例
- Python pandas.tseries.offsets.BQuarterEnd用法及代码示例
- Python pandas.tseries.offsets.BYearBegin用法及代码示例
- Python pandas.tseries.offsets.BYearEnd用法及代码示例
- Python pandas.arrays.IntervalArray.is_empty用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.testing.assert_frame_equal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。