我需要测试两个pandas数据帧不相等。
是否有相当于pandas assert_frame_equal
功能的功能呢?如果不是,那么断言框架不相等的最好/最安全的方法是什么?
答案 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
断言它们不相等