代码之家  ›  专栏  ›  技术社区  ›  Mohamed Thasin ah

‘是’和‘等于’有什么区别?

  •  1
  • Mohamed Thasin ah  · 技术社区  · 6 年前

    我很想找出 assert_frame_equal equal 是的。 两者都用于检查两个数据的相等性。它适用于 assert_series_equal assert_index_equal .那么equals和testing函数有什么区别呢?

    到目前为止,我发现测试函数没有更多的灵活性来比较这些值,比如 check_dtpye 选项等,与返回值不同这是它们之间的唯一区别吗?

    否则,什么时候应该使用equals方法以外的测试函数?

    df1=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
    df2=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
    pd.testing.assert_frame_equal(df1,df2)
    print df1.equals(df2)
    
    pd.testing.assert_series_equal(df1['a'],df2['a'])
    print df1['a'].equals(df2['a'])
    
    pd.testing.assert_index_equal(df1.index,df2.index)
    print df1.index.equals(df2.index)
    
    1 回复  |  直到 6 年前
        1
  •  9
  •   cs95 abhishek58g    6 年前

    assert_frame_equal 抛出一个 AssertionError 当两个数据帧不相等时。

    >>> pd.testing.assert_frame_equal(df1, df2)
    >>> pd.testing.assert_frame_equal(df1, pd.DataFrame())
    AssertionError       
    

    DataFrame.equals 只需返回布尔值true/false。

    >>> df1.equals(df2)
    True
    >>> df1.equals(pd.DataFrame())
    False    
    

    中定义的其他函数也是如此 pd.testing ,用于开发 unit tests 熊猫代码。