断言两个帧不相等

时间:2016-08-04 22:16:22

标签: python unit-testing pandas

我需要测试两个pandas数据帧相等。 是否有相当于pandas assert_frame_equal功能的功能呢?如果不是,那么断言框架不相等的最好/最安全的方法是什么?

3 个答案:

答案 0 :(得分:6)

您可以编写自己的断言函数,使用assert_frame_equal()并反转结果:

def assert_frame_not_equal(*args, **kwargs):
    try:
        assert_frame_equal(*args, **kwargs)
    except AssertionError:
        # frames are not equal
        pass
    else:
        # frames are equal
        raise AssertionError

这将使用assert_frame_equal()用于比较数据帧的相同逻辑,因此避免了什么构成平等的问题 - 不等式与assert_frame_equal()确定的相反。

答案 1 :(得分:2)

假设assert_frame_equal的行为类似于assert(意味着什么都没有发生或者它会引发AssertionError),那么你可能只需将它包装在try中:

def assert_frame_not_equal(df1, df2):
    try:
        assert_frame_equal(df1, df2)
        raise AssertionError('DataFrames are equal.')
    except AssertionError:
        pass

根据需要添加*args和/或**kwargs以获得灵活性。

答案 2 :(得分:-2)

是的,有:

# Let us suppose you have two dataframes df1 and df2
# Check for equality by using
df1.equals(df2)

使用not断言它们不相等